S60UIExampleInitialContainer.inc
上传用户:laixiong
上传日期:2007-03-11
资源大小:2994k
文件大小:1685k
源码类别:

Symbian

开发平台:

C/C++

  1. inline TInt RLocalDrive::SetPassword(const TDesC8& aOldPassword, const TDesC8& aNewPassword, TBool aStorePassword)
  2. { TLocalDrivePasswordData d((TDesC8&)aOldPassword, (TDesC8&)aNewPassword, aStorePassword); return DoControl(EControlPasswordLock, &d); }
  3. inline TInt RLocalDrive::Clear(const TDesC8& aPassword)
  4. { TLocalDrivePasswordData d((TDesC8&)aPassword, (TDesC8&)aPassword, EFalse); return DoControl(EControlPasswordClear, &d); }
  5. inline TInt RLocalDrive::ErasePassword()
  6. { return DoControl(EControlPasswordErase); }
  7. inline TInt RLocalDrive::ReadPasswordData(TDesC8& aStoreData)
  8. { return DoControl(EControlReadPasswordStore, (TDesC8*)&aStoreData); }
  9. inline TInt RLocalDrive::WritePasswordData(const TDesC8& aStoreData)
  10. { return DoControl(EControlWritePasswordStore, (TDesC8*)&aStoreData); }
  11. inline TInt RLocalDrive::PasswordStoreLengthInBytes()
  12. { TInt length=0; return DoControl(EControlPasswordStoreLengthInBytes, (TAny*)&length)==KErrNone?length:0; }
  13. inline TInt RLocalDrive::DeleteNotify(TInt64 aPos, TInt aLength)
  14. { TLocalDriveMessageData d(aPos,aLength,0,KLocalMessageHandle,0,0); return DoControl(EControlDeleteNotify, &d); }
  15. inline TInt RLocalDrive::GetLastErrorInfo(TDesC8& aErrorInfo)
  16. { return DoControl(EControlGetLastErrorInfo, (TDesC8*)&aErrorInfo); }
  17. #line 500 "C:\Symbian\9.1\S60_3rd\epoc32\include\d32locd.h" /* stack depth 7 */
  18. #line 9 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32svr.h" /* stack depth 6 */
  19. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32notif.h" /* stack depth 7 */
  20. #line 16
  21. enum TNotifierMessage
  22. {
  23. ENotifierNotify,
  24. ENotifierInfoPrint,
  25. EStartNotifier,
  26. ECancelNotifier,
  27. EUpdateNotifier,
  28. EStartNotifierAndGetResponse,
  29. EStartNotifierFromSpecifiedDll,
  30. EStartNotifierFromSpecifiedDllAndGetResponse,
  31. ENotifierNotifyCancel,
  32. EUpdateNotifierAndGetResponse,
  33. };
  34. #line 10 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32svr.h" /* stack depth 6 */
  35. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32ldr.h" /* stack depth 7 */
  36. #line 15
  37. const TInt KMaxLibraryEntryPoints=0x100;
  38. const TInt KLoaderMajorVersionNumber=1;
  39. const TInt KLoaderMinorVersionNumber=0;
  40. enum TLoaderMsg
  41. {
  42. ELoadProcess=1,
  43. ELoadLibrary=2,
  44. ELoadLogicalDevice=3,
  45. ELoadPhysicalDevice=4,
  46. ELoadLocale=5,
  47. ELoadFileSystem=6,
  48. EGetInfo=7,
  49. ELoaderDebugFunction=8,
  50. ELoadFSExtension=9,
  51. EGetInfoFromHeader=10,
  52. ELoadFSPlugin=11,
  53. EMaxLoaderMsg
  54. };
  55. class TLdrInfo
  56. {
  57. public:
  58. __declspec(dllexport) TLdrInfo();
  59. public:
  60. TUidType iRequestedUids;
  61. TOwnerType iOwnerType;
  62. TInt iHandle;
  63. TUint32 iSecureId;
  64. TUint32 iRequestedVersion;
  65. };
  66. class RLoader : public RSessionBase
  67. {
  68. public:
  69. __declspec(dllexport) TInt Connect();
  70. TVersion Version() const;
  71. TInt LoadProcess(TInt& aHandle, const TDesC& aFileName, const TDesC& aCommand, const TUidType& aUidType, TOwnerType aType);
  72. __declspec(dllexport) TInt LoadLibrary(TInt& aHandle, const TDesC& aFileName, const TDesC& aPath, const TUidType& aType, TUint32 aModuleVersion);
  73. __declspec(dllexport) TInt GetInfo(const TDesC& aFileName, TDes8& aInfoBuf);
  74. TInt LoadDeviceDriver(const TDesC& aFileName, TInt aDeviceType);
  75. __declspec(dllexport) TInt DebugFunction(TInt aFunction, TInt a1, TInt a2, TInt a3);
  76. TInt LoadLocale(const TDesC& aLocaleDllName, TLibraryFunction* aExportList);
  77. TInt GetInfoFromHeader(const TDesC8& aHeader, TDes8& aInfoBuf);
  78. public:
  79. using RSessionBase::SendReceive;
  80. };
  81. enum TCodeSegAttributes
  82. {
  83. ECodeSegAttKernel =0x00000001,
  84. ECodeSegAttGlobal =0x00000002,
  85. ECodeSegAttFixed =0x00000004,
  86. ECodeSegAttABIMask =0x00000018,
  87. ECodeSegAttHDll =(TInt)0x80000000,
  88. ECodeSegAttExpVer =0x40000000,
  89. };
  90. class TCodeSegCreateInfo
  91. {
  92. public:
  93. TBuf8<KMaxFileName> iFileName;
  94. TUidType iUids;
  95. TUint32 iAttr;
  96. TInt iCodeSize;
  97. TInt iTextSize;
  98. TInt iDataSize;
  99. TInt iBssSize;
  100. TInt iTotalDataSize;
  101. TUint32 iEntryPtVeneer;
  102. TUint32 iFileEntryPoint;
  103. TInt iDepCount;
  104. TUint32 iExportDir;
  105. TInt iExportDirCount;
  106. TUint32 iCodeLoadAddress;
  107. TUint32 iCodeRunAddress;
  108. TUint32 iDataLoadAddress;
  109. TUint32 iDataRunAddress;
  110. TUint32 iExceptionDescriptor;
  111. TInt iRootNameOffset;
  112. TInt iRootNameLength;
  113. TInt iExtOffset;
  114. TUint32 iModuleVersion;
  115. SSecurityInfo iS;
  116. TAny* iHandle;
  117. TInt iClientProcessHandle;
  118. public:
  119. __declspec(dllexport) TPtrC8 RootName() const;
  120. __declspec(dllexport) void FullFileName(TDes8& aName) const;
  121. };
  122. class TProcessCreateInfo : public TCodeSegCreateInfo
  123. {
  124. public:
  125. TInt iHeapSizeMin;
  126. TInt iHeapSizeMax;
  127. TInt iStackSize;
  128. TInt iClientHandle;
  129. TInt iProcessHandle;
  130. TInt iFinalHandle;
  131. TOwnerType iOwnerType;
  132. TProcessPriority iPriority;
  133. TUint iSecurityZone;
  134. };
  135. const TUint KSecurityZoneUnique = 0u;
  136. const TUint KSecurityZoneLegacyCode = ~0u;
  137. class TLibraryCreateInfo
  138. {
  139. public:
  140. TAny* iCodeSegHandle;
  141. TInt iClientHandle;
  142. TInt iLibraryHandle;
  143. TOwnerType iOwnerType;
  144. };
  145. class TFindCodeSeg
  146. {
  147. public:
  148. TUidType iUids;
  149. const TAny* iRomImgHdr;
  150. TUint32 iAttrMask;
  151. TUint32 iAttrVal;
  152. TInt iProcess;
  153. SSecurityInfo iS;
  154. TUint32 iModuleVersion;
  155. TBuf8<KMaxLibraryName> iName;
  156. };
  157. class E32Loader
  158. {
  159. public:
  160. __declspec(dllexport) static TInt CodeSegCreate(TCodeSegCreateInfo& aInfo);
  161. __declspec(dllexport) static TInt CodeSegLoaded(TCodeSegCreateInfo& aInfo);
  162. __declspec(dllexport) static TInt LibraryCreate(TLibraryCreateInfo& aInfo);
  163. __declspec(dllexport) static TInt CodeSegOpen(TAny* aHandle, TInt aClientProcessHandle);
  164. __declspec(dllexport) static void CodeSegClose(TAny* aHandle);
  165. __declspec(dllexport) static void CodeSegNext(TAny*& aHandle, const TFindCodeSeg& aFind);
  166. __declspec(dllexport) static void CodeSegInfo(TAny* aHandle, TCodeSegCreateInfo& aInfo);
  167. __declspec(dllexport) static TInt CodeSegAddDependency(TAny* aImporter, TAny* aExporter);
  168. __declspec(dllexport) static void CodeSegDeferDeletes();
  169. __declspec(dllexport) static void CodeSegEndDeferDeletes();
  170. __declspec(dllexport) static TInt ProcessCreate(TProcessCreateInfo& aInfo, const TDesC8* aCommandLine);
  171. __declspec(dllexport) static TInt ProcessLoaded(TProcessCreateInfo& aInfo);
  172. __declspec(dllexport) static TInt CheckClientState(TInt aClientHandle);
  173. __declspec(dllexport) static TInt DeviceLoad(TAny* aHandle, TInt aType);
  174. __declspec(dllexport) static TAny* ThreadProcessCodeSeg(TInt aHandle);
  175. __declspec(dllexport) static void ReadExportDir(TAny* aHandle, TUint32* aDest);
  176. __declspec(dllexport) static TInt LocaleExports(TAny* aHandle, TLibraryFunction* aExportsList);
  177. __declspec(dllexport) static void GetV7StubAddresses(TLinAddr& aExe, TLinAddr& aDll);
  178. static TInt V7ExeEntryStub();
  179. static TInt V7DllEntryStub(TInt aReason);
  180. public:
  181. static TInt WaitDllLock();
  182. static TInt ReleaseDllLock();
  183. static TInt LibraryAttach(TInt aHandle, TInt& aNumEps, TLinAddr* aEpList);
  184. static TInt LibraryAttached(TInt aHandle);
  185. static TInt StaticCallList(TInt& aNumEps, TLinAddr* aEpList);
  186. static TInt LibraryDetach(TInt& aNumEps, TLinAddr* aEpList);
  187. static TInt LibraryDetached();
  188. };
  189. typedef TInt (*TSupervisorFunction)(TAny*);
  190. #line 11 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32svr.h" /* stack depth 6 */
  191. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32event.h" /* stack depth 7 */
  192. #line 14
  193. const TInt KUndefinedDeviceNumber = -1;
  194. #line 25
  195. class TRawEvent
  196. {
  197. public:
  198. enum TType
  199. {
  200. ENone,
  201. EPointerMove,
  202.         EPointerSwitchOn,
  203. EKeyDown,
  204. EKeyUp,
  205. ERedraw,
  206. ESwitchOn,
  207.         EActive,
  208. EInactive,
  209. EUpdateModifiers,
  210. EButton1Down,
  211. EButton1Up,
  212. EButton2Down,
  213. EButton2Up,
  214. EButton3Down,
  215. EButton3Up,
  216. ESwitchOff,
  217. EKeyRepeat,
  218. ECaseOpen,
  219. ECaseClose,
  220. #line 165
  221. EPointer3DInRange,
  222. #line 174
  223. EPointer3DOutOfRange,
  224. #line 183
  225. EPointer3DTilt,
  226. #line 192
  227. EPointer3DRotation,
  228. #line 201
  229. EPointer3DTiltAndMove,
  230. EButton4Down,
  231. EButton4Up,
  232. EButton5Down,
  233. EButton5Up,
  234. EButton6Down,
  235. EButton6Up
  236. };
  237. public:
  238. inline TRawEvent()
  239. { *(TInt*)&iType=0; }
  240. inline TType Type() const
  241. {return TType(iType);}
  242. inline TInt DeviceNumber() const
  243. {return TInt(iDeviceNumber-1);}
  244. inline void SetDeviceNumber(TInt aDeviceNumber)
  245. {iDeviceNumber = TUint8(aDeviceNumber+1);}
  246. __declspec(dllexport) TPoint Pos() const;
  247. __declspec(dllexport) TInt ScanCode() const;
  248.     __declspec(dllexport) TInt Modifiers() const;
  249. __declspec(dllexport) TPoint3D Pos3D() const;
  250. #line 289
  251. __declspec(dllexport) TAngle3D Tilt() const;
  252. #line 299
  253. __declspec(dllexport) TInt Rotation() const;
  254. #line 309
  255. inline TUint Ticks() const
  256. {return iTicks;}
  257. inline TBool IsTip() const
  258. {return TBool(iTip);}
  259. inline void SetTip(TBool aTip)
  260. {iTip = TUint8(aTip);}
  261. __declspec(dllexport) void Set(TType aType,TInt aScanCode);
  262. __declspec(dllexport) void Set(TType aType,TInt aX,TInt aY);
  263. __declspec(dllexport) void Set(TType aType);
  264. __declspec(dllexport) void Set(TType aType,TInt aX,TInt aY,TInt aZ);
  265. __declspec(dllexport) void Set(TType aType,TInt aX,TInt aY,TInt aZ,TInt aPhi,TInt aTheta,TInt aAlpha);
  266. __declspec(dllexport) void SetTilt(TType aType,TInt aPhi,TInt aTheta);
  267. __declspec(dllexport) void SetRotation(TType aType,TInt aAlpha);
  268. protected:
  269. TUint8 iType;
  270. TUint8 iTip;
  271. TUint8 iSpare2;
  272. TUint8 iDeviceNumber;
  273. TUint iTicks;
  274. union
  275. {
  276. struct {TInt x;TInt y;} pos;
  277. struct {TInt x;TInt y;TInt z;TInt phi;TInt theta;TInt alpha;} pos3D;
  278. TInt scanCode;
  279. TInt modifiers;
  280. } iU;
  281. };
  282. #line 362
  283. class TRawEventBuf : public TPckgBuf<TRawEvent>
  284. {
  285. public:
  286. inline TRawEvent &Event() const {return(*((TRawEvent *)&iBuf[0]));}
  287. };
  288. #line 383
  289. class TScreenInfoV01
  290. {
  291. public:
  292. TBool iWindowHandleValid;
  293. TAny *iWindowHandle;
  294. TBool iScreenAddressValid;
  295. TAny *iScreenAddress;
  296. TSize iScreenSize;
  297. };
  298. #line 12 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32svr.h" /* stack depth 6 */
  299. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32ktran.h" /* stack depth 7 */
  300. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32keys.h" /* stack depth 8 */
  301. #line 39
  302. enum TEventModifier
  303. {
  304. EModifierAutorepeatable=0x00000001,
  305. EModifierKeypad=0x00000002,
  306. EModifierLeftAlt=0x00000004,
  307. EModifierRightAlt=0x00000008,
  308. EModifierAlt=0x00000010,
  309. EModifierLeftCtrl=0x00000020,
  310. EModifierRightCtrl=0x00000040,
  311. EModifierCtrl=0x00000080,
  312. EModifierLeftShift=0x00000100,
  313. EModifierRightShift=0x00000200,
  314. EModifierShift=0x00000400,
  315. EModifierLeftFunc=0x00000800,
  316. EModifierRightFunc=0x00001000,
  317. EModifierFunc=0x00002000,
  318. EModifierCapsLock=0x00004000,
  319. EModifierNumLock=0x00008000,
  320. EModifierScrollLock=0x00010000,
  321. EModifierKeyUp=0x00020000,
  322. EModifierSpecial=0x00040000,
  323. EModifierDoubleClick=0x00080000,
  324.     EModifierPureKeycode=0x00100000,
  325. EModifierKeyboardExtend=0x00200000,
  326. EModifierCancelRotation=0x00000000,
  327. EModifierRotateBy90=0x00400000,
  328. EModifierRotateBy180=0x00800000,
  329. EModifierRotateBy270=0x01000000,
  330. EModifierPointer3DButton1=0x02000000,
  331. EModifierPointer3DButton2=0x04000000,
  332. EModifierPointer3DButton3=0x08000000,
  333. EAllModifiers=0x0fffffff
  334. };
  335. #line 88
  336. enum TModifierState
  337.     {
  338.     ETurnOnModifier=0x40,
  339.     ETurnOffModifier,
  340.     EToggleModifier
  341.     };
  342. #line 120
  343. enum TStdScanCode
  344. {
  345. EStdKeyNull=0x00,
  346. EStdKeyBackspace=0x01,
  347. EStdKeyTab=0x02,
  348. EStdKeyEnter=0x03,
  349. EStdKeyEscape=0x04,
  350. EStdKeySpace=0x05,
  351. EStdKeyPrintScreen=0x06,
  352. EStdKeyPause=0x07,
  353. EStdKeyHome=0x08,
  354. EStdKeyEnd=0x09,
  355. EStdKeyPageUp=0x0a,
  356. EStdKeyPageDown=0x0b,
  357. EStdKeyInsert=0x0c,
  358. EStdKeyDelete=0x0d,
  359. EStdKeyLeftArrow=0x0e,
  360. EStdKeyRightArrow=0x0f,
  361. EStdKeyUpArrow=0x10,
  362. EStdKeyDownArrow=0x11,
  363. EStdKeyLeftShift=0x12,
  364. EStdKeyRightShift=0x13,
  365. EStdKeyLeftAlt=0x14,
  366. EStdKeyRightAlt=0x15,
  367. EStdKeyLeftCtrl=0x16,
  368. EStdKeyRightCtrl=0x17,
  369. EStdKeyLeftFunc=0x18,
  370. EStdKeyRightFunc=0x19,
  371. EStdKeyCapsLock=0x1a,
  372. EStdKeyNumLock=0x1b,
  373. EStdKeyScrollLock=0x1c,
  374. EStdKeyF1=0x60,
  375. EStdKeyF2=0x61,
  376. EStdKeyF3=0x62,
  377. EStdKeyF4=0x63,
  378. EStdKeyF5=0x64,
  379. EStdKeyF6=0x65,
  380. EStdKeyF7=0x66,
  381. EStdKeyF8=0x67,
  382. EStdKeyF9=0x68,
  383. EStdKeyF10=0x69,
  384. EStdKeyF11=0x6a,
  385. EStdKeyF12=0x6b,
  386. EStdKeyF13=0x6c,
  387. EStdKeyF14=0x6d,
  388. EStdKeyF15=0x6e,
  389. EStdKeyF16=0x6f,
  390. EStdKeyF17=0x70,
  391. EStdKeyF18=0x71,
  392. EStdKeyF19=0x72,
  393. EStdKeyF20=0x73,
  394. EStdKeyF21=0x74,
  395. EStdKeyF22=0x75,
  396. EStdKeyF23=0x76,
  397. EStdKeyF24=0x77,
  398. EStdKeyXXX=0x78,
  399. EStdKeyComma=0x79,
  400. EStdKeyFullStop=0x7a,
  401. EStdKeyForwardSlash=0x7b,
  402. EStdKeyBackSlash=0x7c,
  403. EStdKeySemiColon=0x7d,
  404. EStdKeySingleQuote=0x7e,
  405. EStdKeyHash=0x7f,
  406. EStdKeySquareBracketLeft=0x80,
  407. EStdKeySquareBracketRight=0x81,
  408. EStdKeyMinus=0x82,
  409. EStdKeyEquals=0x83,
  410. EStdKeyNkpForwardSlash=0x84,
  411. EStdKeyNkpAsterisk=0x85,
  412. EStdKeyNkpMinus=0x86,
  413. EStdKeyNkpPlus=0x87,
  414. EStdKeyNkpEnter=0x88,
  415. EStdKeyNkp1=0x89,
  416. EStdKeyNkp2=0x8a,
  417. EStdKeyNkp3=0x8b,
  418. EStdKeyNkp4=0x8c,
  419. EStdKeyNkp5=0x8d,
  420. EStdKeyNkp6=0x8e,
  421. EStdKeyNkp7=0x8f,
  422. EStdKeyNkp8=0x90,
  423. EStdKeyNkp9=0x91,
  424. EStdKeyNkp0=0x92,
  425. EStdKeyNkpFullStop=0x93,
  426.     EStdKeyMenu=0x94,
  427.     EStdKeyBacklightOn=0x95,
  428.     EStdKeyBacklightOff=0x96,
  429.     EStdKeyBacklightToggle=0x97,
  430.     EStdKeyIncContrast=0x98,
  431.     EStdKeyDecContrast=0x99,
  432.     EStdKeySliderDown=0x9a,
  433.     EStdKeySliderUp=0x9b,
  434.     EStdKeyDictaphonePlay=0x9c,
  435.     EStdKeyDictaphoneStop=0x9d,
  436.     EStdKeyDictaphoneRecord=0x9e,
  437.     EStdKeyHelp=0x9f,
  438.     EStdKeyOff=0xa0,
  439.     EStdKeyDial=0xa1,
  440.     EStdKeyIncVolume=0xa2,
  441.     EStdKeyDecVolume=0xa3,
  442.     EStdKeyDevice0=0xa4,
  443.     EStdKeyDevice1=0xa5,
  444.     EStdKeyDevice2=0xa6,
  445.     EStdKeyDevice3=0xa7,
  446.     EStdKeyDevice4=0xa8,
  447.     EStdKeyDevice5=0xa9,
  448.     EStdKeyDevice6=0xaa,
  449.     EStdKeyDevice7=0xab,
  450.     EStdKeyDevice8=0xac,
  451.     EStdKeyDevice9=0xad,
  452.     EStdKeyDeviceA=0xae,
  453.     EStdKeyDeviceB=0xaf,
  454.     EStdKeyDeviceC=0xb0,
  455.     EStdKeyDeviceD=0xb1,
  456.     EStdKeyDeviceE=0xb2,
  457.     EStdKeyDeviceF=0xb3,
  458.     EStdKeyApplication0=0xb4,
  459.     EStdKeyApplication1=0xb5,
  460.     EStdKeyApplication2=0xb6,
  461.     EStdKeyApplication3=0xb7,
  462.     EStdKeyApplication4=0xb8,
  463.     EStdKeyApplication5=0xb9,
  464.     EStdKeyApplication6=0xba,
  465.     EStdKeyApplication7=0xbb,
  466.     EStdKeyApplication8=0xbc,
  467.     EStdKeyApplication9=0xbd,
  468.     EStdKeyApplicationA=0xbe,
  469.     EStdKeyApplicationB=0xbf,
  470.     EStdKeyApplicationC=0xc0,
  471.     EStdKeyApplicationD=0xc1,
  472.     EStdKeyApplicationE=0xc2,
  473.     EStdKeyApplicationF=0xc3,
  474. EStdKeyYes=0xc4,
  475. EStdKeyNo=0xc5,
  476. EStdKeyIncBrightness=0xc6,
  477. EStdKeyDecBrightness=0xc7,
  478. EStdKeyKeyboardExtend=0xc8,
  479.     EStdKeyDevice10=0xc9,
  480.     EStdKeyDevice11=0xca,
  481.     EStdKeyDevice12=0xcb,
  482.     EStdKeyDevice13=0xcc,
  483.     EStdKeyDevice14=0xcd,
  484.     EStdKeyDevice15=0xce,
  485.     EStdKeyDevice16=0xcf,
  486.     EStdKeyDevice17=0xd0,
  487.     EStdKeyDevice18=0xd1,
  488.     EStdKeyDevice19=0xd2,
  489.     EStdKeyDevice1A=0xd3,
  490.     EStdKeyDevice1B=0xd4,
  491.     EStdKeyDevice1C=0xd5,
  492.     EStdKeyDevice1D=0xd6,
  493.     EStdKeyDevice1E=0xd7,
  494.     EStdKeyDevice1F=0xd8,
  495.     EStdKeyApplication10=0xd9,
  496.     EStdKeyApplication11=0xda,
  497.     EStdKeyApplication12=0xdb,
  498.     EStdKeyApplication13=0xdc,
  499.     EStdKeyApplication14=0xdd,
  500.     EStdKeyApplication15=0xde,
  501.     EStdKeyApplication16=0xdf,
  502.     EStdKeyApplication17=0xe0,
  503.     EStdKeyApplication18=0xe1,
  504.     EStdKeyApplication19=0xe2,
  505.     EStdKeyApplication1A=0xe3,
  506.     EStdKeyApplication1B=0xe4,
  507.     EStdKeyApplication1C=0xe5,
  508.     EStdKeyApplication1D=0xe6,
  509.     EStdKeyApplication1E=0xe7,
  510.     EStdKeyApplication1F=0xe8
  511. };
  512. #line 303
  513. enum TKeyCode
  514. {
  515. EKeyNull=0x0000,
  516. EKeyBell=0x0007,
  517. EKeyBackspace=0x0008,
  518. EKeyTab=0x0009,
  519. EKeyLineFeed=0x000a,
  520. EKeyVerticalTab=0x000b,
  521. EKeyFormFeed=0x000c,
  522. EKeyEnter=0x000d,
  523. EKeyEscape=0x001b,
  524. EKeySpace=0x0020,
  525. EKeyDelete=0x007f,
  526. EKeyPrintScreen=0xf800 ,
  527. EKeyPause,
  528. EKeyHome,
  529. EKeyEnd,
  530. EKeyPageUp,
  531. EKeyPageDown,
  532. EKeyInsert,
  533. EKeyLeftArrow,
  534. EKeyRightArrow,
  535. EKeyUpArrow,
  536. EKeyDownArrow,
  537. EKeyLeftShift,
  538. EKeyRightShift,
  539. EKeyLeftAlt,
  540. EKeyRightAlt,
  541. EKeyLeftCtrl,
  542. EKeyRightCtrl,
  543. EKeyLeftFunc,
  544. EKeyRightFunc,
  545. EKeyCapsLock,
  546. EKeyNumLock,
  547. EKeyScrollLock,
  548. EKeyF1,
  549. EKeyF2,
  550. EKeyF3,
  551. EKeyF4,
  552. EKeyF5,
  553. EKeyF6,
  554. EKeyF7,
  555. EKeyF8,
  556. EKeyF9,
  557. EKeyF10,
  558. EKeyF11,
  559. EKeyF12,
  560. EKeyF13,
  561. EKeyF14,
  562. EKeyF15,
  563. EKeyF16,
  564. EKeyF17,
  565. EKeyF18,
  566. EKeyF19,
  567. EKeyF20,
  568. EKeyF21,
  569. EKeyF22,
  570. EKeyF23,
  571. EKeyF24,
  572.     EKeyOff,
  573.     EKeyIncContrast,
  574.     EKeyDecContrast,
  575.     EKeyBacklightOn,
  576.     EKeyBacklightOff,
  577.     EKeyBacklightToggle,
  578.     EKeySliderDown,
  579.     EKeySliderUp,
  580.     EKeyMenu,
  581.     EKeyDictaphonePlay,
  582.     EKeyDictaphoneStop,
  583.     EKeyDictaphoneRecord,
  584.     EKeyHelp,
  585.     EKeyDial,
  586. EKeyScreenDimension0,
  587. EKeyScreenDimension1,
  588. EKeyScreenDimension2,
  589. EKeyScreenDimension3,
  590. EKeyIncVolume,
  591. EKeyDecVolume,
  592. EKeyDevice0,
  593. EKeyDevice1,
  594. EKeyDevice2,
  595. EKeyDevice3,
  596. EKeyDevice4,
  597. EKeyDevice5,
  598. EKeyDevice6,
  599. EKeyDevice7,
  600. EKeyDevice8,
  601. EKeyDevice9,
  602. EKeyDeviceA,
  603. EKeyDeviceB,
  604. EKeyDeviceC,
  605. EKeyDeviceD,
  606. EKeyDeviceE,
  607. EKeyDeviceF,
  608. EKeyApplication0,
  609. EKeyApplication1,
  610. EKeyApplication2,
  611. EKeyApplication3,
  612. EKeyApplication4,
  613. EKeyApplication5,
  614. EKeyApplication6,
  615. EKeyApplication7,
  616. EKeyApplication8,
  617. EKeyApplication9,
  618. EKeyApplicationA,
  619. EKeyApplicationB,
  620. EKeyApplicationC,
  621. EKeyApplicationD,
  622. EKeyApplicationE,
  623. EKeyApplicationF,
  624. EKeyYes,
  625. EKeyNo,
  626. EKeyIncBrightness,
  627. EKeyDecBrightness,
  628. EKeyKeyboardExtend,
  629. EKeyDevice10,
  630. EKeyDevice11,
  631. EKeyDevice12,
  632. EKeyDevice13,
  633. EKeyDevice14,
  634. EKeyDevice15,
  635. EKeyDevice16,
  636. EKeyDevice17,
  637. EKeyDevice18,
  638. EKeyDevice19,
  639. EKeyDevice1A,
  640. EKeyDevice1B,
  641. EKeyDevice1C,
  642. EKeyDevice1D,
  643. EKeyDevice1E,
  644. EKeyDevice1F,
  645. EKeyApplication10,
  646. EKeyApplication11,
  647. EKeyApplication12,
  648. EKeyApplication13,
  649. EKeyApplication14,
  650. EKeyApplication15,
  651. EKeyApplication16,
  652. EKeyApplication17,
  653. EKeyApplication18,
  654. EKeyApplication19,
  655. EKeyApplication1A,
  656. EKeyApplication1B,
  657. EKeyApplication1C,
  658. EKeyApplication1D,
  659. EKeyApplication1E,
  660. EKeyApplication1F
  661. };
  662. #line 14 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32ktran.h" /* stack depth 7 */
  663. class TMaskedModifiers
  664. {
  665. public:
  666. TUint iMask;
  667. TUint iValue;
  668. };
  669. enum TPattern
  670. {
  671. EAnyKey=0x00,
  672. EAnyAlphaNumeric,
  673. EAnyAlpha,
  674. EAnyAlphaLowerCase,
  675. EAnyAlphaUpperCase,
  676. EAnyDecimalDigit,
  677. EAnyDigitGivenRadix,
  678. EAnyModifierKey,
  679. EMatchKey=0x40,
  680. EMatchKeyCaseInsens,
  681. EMatchLeftOrRight
  682. };
  683. class TKeyCodePattern
  684. {
  685. public:
  686. TUint16 iKeyCode;
  687. TInt8   iPattern;
  688. TInt8   iFiller;
  689. };
  690. class TCaptureKey
  691. {
  692. public:
  693. TMaskedModifiers iModifiers;
  694. TKeyCodePattern  iKeyCodePattern;
  695. TUint iApp;
  696. TUint iHandle;
  697. };
  698. class TKeyData
  699. {
  700. public:
  701. TInt  iModifiers;
  702. TInt  iApp;
  703. TInt  iHandle;
  704. TBool iIsCaptureKey;
  705. TUint iKeyCode;
  706. };
  707. class CCaptureKeys: public CBase
  708. {
  709. public:
  710. __declspec(dllexport) CCaptureKeys();
  711. __declspec(dllexport) ~CCaptureKeys();
  712. __declspec(dllexport) void Construct();
  713. __declspec(dllexport) void AddCaptureKeyL(const TCaptureKey &aCaptureKey);
  714. __declspec(dllexport) void AddCaptureKeyL(const TCaptureKey &aCaptureKey, TUint8 aPriority);
  715. __declspec(dllexport) void SetCaptureKey(TUint32 aHandle, const TCaptureKey &aCaptureKey);
  716. __declspec(dllexport) void SetCaptureKey(TUint32 aHandle, const TCaptureKey &aCaptureKey, TUint8 aPriority);
  717. __declspec(dllexport) void CancelCaptureKey(TUint32 aHandle);
  718. __declspec(dllexport) void CancelAllCaptureKeys(TUint32 aApp);
  719. __declspec(dllexport) void ProcessCaptureKeys(TKeyData &aKeyData) const;
  720. protected:
  721. void CheckCaptureKey(const TCaptureKey &aCaptureKey);
  722. void removeCaptureKey(TUint index);
  723. protected:
  724. RArray<TCaptureKey> iCKarray;
  725. };
  726. class CKeyTranslator: public CBase
  727. {
  728. public:
  729. __declspec(dllexport) static CKeyTranslator *New();
  730. virtual TInt GetModifierState()=0;
  731. virtual void SetModifierState(TEventModifier aModifier,TModifierState aState)=0;
  732. virtual TBool TranslateKey(TUint aScanCode,TBool aKeyUp,const CCaptureKeys &aCaptureKeys,TKeyData &aKeyData)=0;
  733.     virtual void UpdateModifiers(TInt aModifiers)=0;
  734.     virtual TInt ChangeKeyData(const TDesC& aLibraryName)=0;
  735. };
  736. #line 13 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32svr.h" /* stack depth 6 */
  737. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32debug.h" /* stack depth 7 */
  738. #line 13
  739. const TInt KMaxProfiles=64;
  740. class TProfile
  741.     {
  742. public:
  743.     TInt iTime;
  744.     TInt iCount;
  745.     };
  746. class RDebug
  747. {
  748. public:
  749.     __declspec(dllexport) static void Printf(const char*, ...);
  750.     __declspec(dllexport) static TInt Print(TRefByValue<const TDesC> aFmt,...);
  751.     __declspec(dllexport) static void RawPrint(const TDesC& aDes);
  752. };
  753. #line 14 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32svr.h" /* stack depth 6 */
  754. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32lmsg.h" /* stack depth 7 */
  755. #line 15
  756. const TInt KMaxLocaleMessageText=0x80;
  757. enum TLocaleMessage
  758. {
  759. EFileServer_Button1,
  760. EFileServer_Button2,
  761. EFileServer_PutTheCardBackLine1,
  762. EFileServer_PutTheCardBackLine2,
  763. EFileServer_LowPowerLine1,
  764. EFileServer_LowPowerLine2,
  765. EFileServer_DiskErrorLine1,
  766. EFileServer_DiskErrorLine2,
  767. ESoundDriver_Chimes,
  768. ESoundDriver_Rings,
  769. ESoundDriver_Signal,
  770. EMediaDriver_DiskNameInternal,
  771. EMediaDriver_DiskNameExternal1,
  772. EMediaDriver_DiskNameExternal2,
  773. EMediaDriver_DiskNameExternal3,
  774. EMediaDriver_DiskNameExternal4,
  775. EMediaDriver_DiskNameExternal5,
  776. EMediaDriver_DiskNameExternal6,
  777. EMediaDriver_DiskNameExternal7,
  778. EMediaDriver_DiskNameExternal8,
  779. EMediaDriver_SocketName0,
  780. EMediaDriver_SocketName1,
  781. EMediaDriver_SocketName2,
  782. EMediaDriver_SocketName3,
  783. ELocaleMessages_LastMsg
  784. };
  785. class TLocaleMessageText : public TBuf<KMaxLocaleMessageText>
  786. {
  787. public:
  788. __declspec(dllexport) TLocaleMessageText();
  789. __declspec(dllexport) TLocaleMessageText(TLocaleMessage aMessageNo);
  790. __declspec(dllexport) void Set(TLocaleMessage aMessageNo);
  791. };
  792. #line 15 "C:\Symbian\9.1\S60_3rd\epoc32\include\e32svr.h" /* stack depth 6 */
  793. enum TBlockType {EBlocked,EUnBlocked,ERelease};
  794. class UserSvr
  795. {
  796. public:
  797. __declspec(dllexport) static void CaptureEventHook();
  798. __declspec(dllexport) static void ReleaseEventHook();
  799. __declspec(dllexport) static void RequestEvent(TRawEventBuf &anEvent,TRequestStatus &aStatus);
  800. __declspec(dllexport) static void RequestEventCancel();
  801. __declspec(dllexport) static TInt AddEvent(const TRawEvent& anEvent);
  802. __declspec(dllexport) static void ScreenInfo(TDes8& anInfo);
  803. __declspec(dllexport) static TInt DllSetTls(TInt aHandle, TAny *aPtr);
  804. __declspec(dllexport) static TAny *DllTls(TInt aHandle);
  805. __declspec(dllexport) static void DllFreeTls(TInt aHandle);
  806. __declspec(dllexport) static void DllFileName(TInt aHandle, TDes &aFileName);
  807. __declspec(dllexport) static void FsRegisterThread();
  808. __declspec(dllexport) static void WsRegisterThread();
  809.     __declspec(dllexport) static TBool TestBootSequence();
  810.     __declspec(dllexport) static void WsRegisterSwitchOnScreenHandling(TBool aState);
  811.     __declspec(dllexport) static void WsSwitchOnScreen();
  812.     __declspec(dllexport) static TInt ChangeLocale(const TDesC& aLocaleDllName);
  813. __declspec(dllexport) static TInt ResetMachine(TMachineStartupType aType);
  814. __declspec(dllexport) static void UnlockRamDrive();
  815. __declspec(dllexport) static void LockRamDrive();
  816. __declspec(dllexport) static TUint32 RomRootDirectoryAddress();
  817. __declspec(dllexport) static TInt ExecuteInSupervisorMode(TSupervisorFunction aFunction, TAny* aParameter);
  818. __declspec(dllexport) static TUint32 RomHeaderAddress();
  819. __declspec(dllexport) static TUint32 DebugMask();
  820. __declspec(dllexport) static TUint32 DebugMask(TUint aIndex);
  821. __declspec(dllexport) static TInt HalFunction(TInt aGroup, TInt aFunction, TAny* a1, TAny* a2);
  822. __declspec(dllexport) static TInt HalFunction(TInt aGroup, TInt aFunction, TAny* a1, TAny* a2, TInt aDeviceNumber);
  823. __declspec(dllexport) static TInt HalGet(TInt,TAny*);
  824. __declspec(dllexport) static TInt HalSet(TInt,TAny*);
  825. __declspec(dllexport) static TInt SetMemoryThresholds(TInt aLowThreshold, TInt aGoodThreshold);
  826. __declspec(dllexport) static TBool IpcV1Available();
  827. __declspec(dllexport) static TLinAddr ExceptionDescriptor(TLinAddr aCodeAddress);
  828. __declspec(dllexport) static TInt LocalePropertiesSetDefaults();
  829. };
  830. #line 20 "C:\Symbian\9.1\S60_3rd\epoc32\include\f32file.h" /* stack depth 5 */
  831. #line 30
  832. const TInt KDefaultDrive=KMaxTInt;
  833. #line 43
  834. const TInt KDriveAbsent=0x00;
  835. #line 56
  836. const TInt KFileServerDefaultMessageSlots=-1;
  837. #line 70
  838. const TInt KEntryArraySize=(0x200*sizeof(TText));
  839. #line 81
  840. const TInt KPathDelimiter='\';
  841. #line 92
  842. const TInt KDriveDelimiter=':';
  843. #line 103
  844. const TInt KExtDelimiter='.';
  845. #line 114
  846. const TInt KMaxDrives=26;
  847. #line 129
  848. typedef TBuf8<KMaxDrives> TDriveList;
  849. #line 141
  850. const TInt KMaxDriveName=0x02;
  851. #line 158
  852. typedef TBuf<KMaxDriveName> TDriveName;
  853. #line 169
  854. const TUint KEntryAttNormal=0x0000;
  855. #line 180
  856. const TUint KEntryAttReadOnly=0x0001;
  857. #line 191
  858. const TUint KEntryAttHidden=0x0002;
  859. #line 202
  860. const TUint KEntryAttSystem=0x0004;
  861. #line 213
  862. const TUint KEntryAttVolume=0x0008;
  863. #line 224
  864. const TUint KEntryAttDir=0x0010;
  865. #line 235
  866. const TUint KEntryAttArchive=0x0020;
  867. #line 244
  868. const TUint KEntryAttXIP=0x0080;
  869. #line 263
  870. const TUint KEntryAttMatchMask=(KEntryAttHidden|KEntryAttSystem|KEntryAttDir);
  871. #line 280
  872. const TUint KEntryAttMaskSupported=0x3f;
  873. #line 300
  874. const TUint KEntryAttMatchExclusive=0x40000000;
  875. #line 329
  876. const TUint KEntryAttMatchExclude=0x08000000;
  877. #line 345
  878. const TUint KEntryAttAllowUid=0x10000000;
  879. const TUint KDebugNotifyMask=0xFF000000;
  880. enum TNotifyType
  881. #line 374
  882. {
  883. ENotifyAll=0x01,
  884. ENotifyEntry=0x02,
  885. ENotifyFile=0x04,
  886. ENotifyDir=0x08,
  887. ENotifyAttributes=0x10,
  888. ENotifyWrite=0x20,
  889. ENotifyDisk=0x40
  890. };
  891. enum TNotifyDismountMode
  892. #line 430
  893. {
  894. EFsDismountRegisterClient=0x01,
  895. EFsDismountNotifyClients=0x02,
  896. EFsDismountForceDismount=0x03,
  897. };
  898. enum TStartupConfigurationCmd
  899. #line 458
  900.     {
  901.     ELoaderPriority,
  902.     EMaxStartupConfigurationCmd
  903.     };
  904. enum TDriveNumber
  905. {
  906. EDriveA,   EDriveB,   EDriveC,   EDriveD,   EDriveE,
  907. EDriveF,   EDriveG,   EDriveH,   EDriveI,   EDriveJ,
  908. EDriveK,   EDriveL,   EDriveM,   EDriveN,   EDriveO,
  909. EDriveP,   EDriveQ,   EDriveR,   EDriveS,   EDriveT,
  910. EDriveU,   EDriveV,   EDriveW,   EDriveX,   EDriveY,
  911. EDriveZ
  912. };
  913. enum TEntryKey
  914. #line 501
  915. {
  916. ESortNone=0,
  917. #line 514
  918. ESortByName,
  919. #line 527
  920. ESortByExt,
  921. #line 536
  922. ESortBySize,
  923. #line 547
  924. ESortByDate,
  925. #line 556
  926. ESortByUid,
  927. #line 567
  928. EDirsAnyOrder=0,
  929. EDirsFirst=0x100,
  930. EDirsLast=0x200,
  931. #line 593
  932. EAscending=0,
  933. EDescending=0x400,
  934. #line 610
  935. EDirDescending=0x800
  936. };
  937. enum TFileMode
  938. #line 658
  939. {
  940. EFileShareExclusive,
  941. #line 676
  942. EFileShareReadersOnly,
  943. #line 688
  944. EFileShareAny,
  945. #line 700
  946. EFileShareReadersOrWriters,
  947. EFileStream=0,
  948. EFileStreamText=0x100,
  949. EFileRead=0,
  950. EFileWrite=0x200,
  951. #line 735
  952. EFileReadAsyncAll=0x400
  953. };
  954. #line 749
  955. const TUint KFileShareMask=0xff;
  956. enum TFormatMode
  957. {
  958. EHighDensity,
  959. ELowDensity,
  960. #line 780
  961. EFullFormat=0,
  962. #line 789
  963. EQuickFormat=0x100,
  964. ESpecialFormat=0x200
  965. };
  966. enum TSeek
  967. #line 813
  968. {
  969. ESeekAddress,
  970. ESeekStart,
  971. ESeekCurrent,
  972. ESeekEnd
  973. };
  974. class TEntry
  975. #line 869
  976. {
  977. public:
  978. __declspec(dllexport) TEntry();
  979. __declspec(dllexport) TEntry(const TEntry& aEntry);
  980. __declspec(dllexport) TEntry& operator=(const TEntry& aEntry);
  981. __declspec(dllexport) TBool IsReadOnly() const;
  982. __declspec(dllexport) TBool IsHidden() const;
  983. __declspec(dllexport) TBool IsSystem() const;
  984. __declspec(dllexport) TBool IsDir() const;
  985. __declspec(dllexport) TBool IsArchive() const;
  986. inline const TUid& operator[](TInt anIndex) const;
  987. inline TBool IsUidPresent(TUid aUid) const;
  988. inline TBool IsTypeValid() const;
  989. inline TUid MostDerivedUid() const;
  990. public:
  991. #line 893
  992. TUint iAtt;
  993. TInt iSize;
  994. TTime iModified;
  995. TUidType iType;
  996. #line 920
  997. TBufC<KMaxFileName> iName;
  998. private:
  999. TUint32 iReserved[2];
  1000. };
  1001. class RDir;
  1002. class TEntryArray
  1003. #line 947
  1004. {
  1005. public:
  1006. __declspec(dllexport) TEntryArray();
  1007. __declspec(dllexport) TInt Count() const;
  1008. __declspec(dllexport) const TEntry& operator[](TInt anIndex) const;
  1009. private:
  1010. TInt iCount;
  1011. TInt iIndex;
  1012. const TEntry* iPos;
  1013. TBuf8<KEntryArraySize> iBuf;
  1014. friend class RDir;
  1015. friend class RFs;
  1016. };
  1017. class TDriveInfo
  1018. #line 973
  1019. {
  1020. public:
  1021. TMediaType iType;
  1022.     TBatteryState iBattery;
  1023. #line 997
  1024. TUint iDriveAtt;
  1025. #line 1010
  1026. TUint iMediaAtt;
  1027. private:
  1028. TUint32 iReserved;
  1029. };
  1030. class TVolumeInfo
  1031. #line 1033
  1032. {
  1033. public:
  1034. __declspec(dllexport) TVolumeInfo();
  1035. TDriveInfo iDrive;
  1036. TUint iUniqueID;
  1037. TInt64 iSize;
  1038. TInt64 iFree;
  1039. TBufC<KMaxFileName> iName;
  1040. private:
  1041. TUint32 iReserved[4];
  1042. };
  1043. class TDriveUnit
  1044. #line 1094
  1045. {
  1046. public:
  1047. inline TDriveUnit() {};
  1048. __declspec(dllexport) TDriveUnit(TInt aDrive);
  1049. __declspec(dllexport) TDriveUnit(const TDesC& aDrive);
  1050. __declspec(dllexport) TDriveUnit& operator=(TInt aDrive);
  1051. __declspec(dllexport) TDriveUnit& operator=(const TDesC& aDrive);
  1052. inline operator TInt() const;
  1053. __declspec(dllexport) TDriveName Name() const;
  1054. private:
  1055. TInt iDrive;
  1056. };
  1057. class RFs;
  1058. class TParseBase
  1059. #line 1139
  1060. {
  1061. private:
  1062. struct SField {TUint8 pos;TUint8 len;TUint8 present;TUint8 filler;};
  1063. enum TField {EDrive,EPath,EName,EExt,EMaxFields};
  1064. enum TWild {EWildName=0x01,EWildExt=0x02,EWildEither=0x04,EIsRoot=0x08,EWildIsKMatchOne=0x10,EWildIsKMatchAny=0x20};
  1065. public:
  1066. __declspec(dllexport) TParseBase();
  1067. __declspec(dllexport) TInt PopDir();
  1068. __declspec(dllexport) TInt AddDir(const TDesC& aName);
  1069. __declspec(dllexport) const TDesC& FullName() const;
  1070. __declspec(dllexport) TPtrC Drive() const;
  1071. __declspec(dllexport) TPtrC Path() const;
  1072. __declspec(dllexport) TPtrC DriveAndPath() const;
  1073. __declspec(dllexport) TPtrC Name() const;
  1074. __declspec(dllexport) TPtrC Ext() const;
  1075. __declspec(dllexport) TPtrC NameAndExt() const;
  1076. __declspec(dllexport) TBool DrivePresent() const;
  1077. __declspec(dllexport) TBool PathPresent() const;
  1078. __declspec(dllexport) TBool NamePresent() const;
  1079. __declspec(dllexport) TBool ExtPresent() const;
  1080. __declspec(dllexport) TBool NameOrExtPresent() const;
  1081. __declspec(dllexport) TBool IsRoot() const;
  1082. __declspec(dllexport) TBool IsWild() const;
  1083. __declspec(dllexport) TBool IsKMatchOne() const;
  1084. __declspec(dllexport) TBool IsKMatchAny() const;
  1085. __declspec(dllexport) TBool IsNameWild() const;
  1086. __declspec(dllexport) TBool IsExtWild() const;
  1087. protected:
  1088. virtual TDes& NameBuf() = 0;
  1089. virtual const TDesC& NameBufC() const = 0;
  1090. TInt Set(const TDesC* aName,const TDesC* aRelated,const TDesC* aDefault,TBool allowWild);
  1091. private:
  1092. TInt ParseDrive(TLex& aName,TBool& aDone);
  1093. TInt ParsePath(TLex& aName,TBool& aDone);
  1094. TInt ParseName(TLex& aName,TBool& aDone);
  1095. TInt ParseExt(TLex& aName,TBool& aDone);
  1096. protected:
  1097. TInt16 iMod;
  1098. private:
  1099. TInt16 iWild;
  1100. SField iField[EMaxFields];
  1101. };
  1102. class TParsePtr : public TParseBase
  1103. #line 1203
  1104. {
  1105. public:
  1106. __declspec(dllexport) TParsePtr(TDes& aName);
  1107. protected:
  1108. __declspec(dllexport) TDes& NameBuf();
  1109. __declspec(dllexport) const TDesC& NameBufC() const;
  1110. private:
  1111. TPtr iNameBuf;
  1112. };
  1113. class TParsePtrC : public TParseBase
  1114. #line 1235
  1115. {
  1116. public:
  1117. __declspec(dllexport) TParsePtrC(const TDesC& aName);
  1118. protected:
  1119. __declspec(dllexport) TDes& NameBuf();
  1120. __declspec(dllexport) const TDesC& NameBufC() const;
  1121. private:
  1122. TPtrC iNameBuf;
  1123. };
  1124. class TParse : public TParseBase
  1125. #line 1265
  1126. {
  1127. public:
  1128. __declspec(dllexport) TParse();
  1129. __declspec(dllexport) TInt Set(const TDesC& aName,const TDesC* aRelated,const TDesC* aDefault);
  1130. __declspec(dllexport) TInt SetNoWild(const TDesC& aName,const TDesC* aRelated,const TDesC* aDefault);
  1131. protected:
  1132. __declspec(dllexport) TDes& NameBuf();
  1133. __declspec(dllexport) const TDesC& NameBufC() const;
  1134. private:
  1135. TFileName iNameBuf;
  1136. };
  1137. class CDir : public CBase
  1138. #line 1289
  1139. {
  1140. public:
  1141. __declspec(dllexport) virtual ~CDir();
  1142. __declspec(dllexport) TInt Count() const;
  1143. __declspec(dllexport) const TEntry& operator[](TInt anIndex) const;
  1144. __declspec(dllexport) TInt Sort(TUint aEntrySortKey);
  1145. protected:
  1146. __declspec(dllexport) CDir();
  1147. __declspec(dllexport) static CDir* NewL();
  1148. __declspec(dllexport) void AddL(const TEntry& anEntry);
  1149. __declspec(dllexport) void ExtractL(TBool aRemove,CDir*& aDir);
  1150. __declspec(dllexport) void Compress();
  1151. protected:
  1152. CArrayPakFlat<TEntry> * iArray;
  1153. friend class RFs;
  1154. friend class TOpenFileScan;
  1155. };
  1156. class RFs : public RSessionBase
  1157. #line 1380
  1158. {
  1159. public:
  1160. __declspec(dllexport) TInt Connect(TInt aMessageSlots=KFileServerDefaultMessageSlots);
  1161. __declspec(dllexport) TVersion Version() const;
  1162. __declspec(dllexport) TInt AddFileSystem(const TDesC& aFileName) const;
  1163. __declspec(dllexport) TInt MountFileSystem(const TDesC& aFileSystemName,TInt aDrive) const;
  1164. __declspec(dllexport) TInt MountFileSystem(const TDesC& aFileSystemName,TInt aDrive, TBool aIsSync) const;
  1165. __declspec(dllexport) TInt MountFileSystemAndScan(const TDesC& aFileSystemName,TInt aDrive,TBool& aIsMountSuccess) const;
  1166. __declspec(dllexport) TInt MountFileSystem(const TDesC& aFileSystemName,const TDesC& aExtensionName,TInt aDrive);
  1167. __declspec(dllexport) TInt MountFileSystem(const TDesC& aFileSystemName,const TDesC& aExtensionName,TInt aDrive, TBool aIsSync);
  1168. __declspec(dllexport) TInt MountFileSystemAndScan(const TDesC& aFileSystemName,const TDesC& aExtensionName,TInt aDrive,TBool& aIsMountSuccess) const;
  1169. __declspec(dllexport) TInt DismountFileSystem(const TDesC& aFileSystemName,TInt aDrive) const;
  1170. __declspec(dllexport) TInt RemoveFileSystem(const TDesC& aFileSystemName) const;
  1171. __declspec(dllexport) TInt FileSystemName(TDes& aName,TInt aDrive) const;
  1172. __declspec(dllexport) TInt AddExtension(const TDesC& aFileName);
  1173. __declspec(dllexport) TInt MountExtension(const TDesC& aExtensionName,TInt aDrive);
  1174. __declspec(dllexport) TInt DismountExtension(const TDesC& aExtensionName,TInt aDrive);
  1175. __declspec(dllexport) TInt RemoveExtension(const TDesC& aExtensionName);
  1176. __declspec(dllexport) TInt ExtensionName(TDes& aExtensionName,TInt aDrive,TInt aPos);
  1177. __declspec(dllexport) TInt RemountDrive(TInt aDrive,const TDesC8* aMountInfo=0 ,TUint aFlags=0);
  1178. __declspec(dllexport) void NotifyChange(TNotifyType aType,TRequestStatus& aStat);
  1179. __declspec(dllexport) void NotifyChange(TNotifyType aType,TRequestStatus& aStat,const TDesC& aPathName);
  1180. __declspec(dllexport) void NotifyChangeCancel();
  1181. __declspec(dllexport) void NotifyChangeCancel(TRequestStatus& aStat);
  1182. __declspec(dllexport) void NotifyDiskSpace(TInt64 aThreshold,TInt aDrive,TRequestStatus& aStat);
  1183. __declspec(dllexport) void NotifyDiskSpaceCancel(TRequestStatus& aStat);
  1184. __declspec(dllexport) void NotifyDiskSpaceCancel();
  1185. __declspec(dllexport) TInt DriveList(TDriveList& aList) const;
  1186. __declspec(dllexport) TInt Drive(TDriveInfo& anInfo,TInt aDrive=KDefaultDrive) const;
  1187. __declspec(dllexport) TInt Volume(TVolumeInfo& aVol,TInt aDrive=KDefaultDrive) const;
  1188. __declspec(dllexport) TInt SetVolumeLabel(const TDesC& aName,TInt aDrive=KDefaultDrive);
  1189. __declspec(dllexport) TInt Subst(TDes& aPath,TInt aDrive=KDefaultDrive) const;
  1190. __declspec(dllexport) TInt SetSubst(const TDesC& aPath,TInt aDrive=KDefaultDrive);
  1191. __declspec(dllexport) TInt RealName(const TDesC& aName,TDes& aResult) const;
  1192.     __declspec(dllexport) TInt GetMediaSerialNumber(TMediaSerialNumber& aSerialNum, TInt aDrive);
  1193. __declspec(dllexport) TInt SessionPath(TDes& aPath) const;
  1194. __declspec(dllexport) TInt SetSessionPath(const TDesC& aPath);
  1195. __declspec(dllexport) TInt Parse(const TDesC& aName,TParse& aParse) const;
  1196. __declspec(dllexport) TInt Parse(const TDesC& aName,const TDesC& aRelated,TParse& aParse) const;
  1197. __declspec(dllexport) TInt MkDir(const TDesC& aPath);
  1198. __declspec(dllexport) TInt MkDirAll(const TDesC& aPath);
  1199. __declspec(dllexport) TInt RmDir(const TDesC& aPath);
  1200. __declspec(dllexport) TInt GetDir(const TDesC& aName,TUint anEntryAttMask,TUint anEntrySortKey,CDir*& anEntryList) const;
  1201. __declspec(dllexport) TInt GetDir(const TDesC& aName,TUint anEntryAttMask,TUint anEntrySortKey,CDir*& anEntryList,CDir*& aDirList) const;
  1202. __declspec(dllexport) TInt GetDir(const TDesC& aName,const TUidType& anEntryUid,TUint anEntrySortKey,CDir*& aFileList) const;
  1203. __declspec(dllexport) TInt Delete(const TDesC& aName);
  1204. __declspec(dllexport) TInt Rename(const TDesC& anOldName,const TDesC& aNewName);
  1205. __declspec(dllexport) TInt Replace(const TDesC& anOldName,const TDesC& aNewName);
  1206. __declspec(dllexport) TInt Att(const TDesC& aName,TUint& aAttValue) const;
  1207. __declspec(dllexport) TInt SetAtt(const TDesC& aName,TUint aSetAttMask,TUint aClearAttMask);
  1208. __declspec(dllexport) TInt Modified(const TDesC& aName,TTime& aTime) const;
  1209. __declspec(dllexport) TInt SetModified(const TDesC& aName,const TTime& aTime);
  1210. __declspec(dllexport) TInt Entry(const TDesC& aName,TEntry& anEntry) const;
  1211. __declspec(dllexport) TInt SetEntry(const TDesC& aName,const TTime& aTime,TUint aSetAttMask,TUint aClearAttMask);
  1212. __declspec(dllexport) TInt ReadFileSection(const TDesC& aName,TInt aPos,TDes8& aDes,TInt aLength) const;
  1213. __declspec(dllexport) static TBool IsValidDrive(TInt aDrive);
  1214. __declspec(dllexport) static TInt CharToDrive(TChar aChar,TInt& aDrive);
  1215. __declspec(dllexport) static TInt DriveToChar(TInt aDrive,TChar& aChar);
  1216. __declspec(dllexport) static TBool IsRomAddress(TAny* aAny);
  1217. __declspec(dllexport) void ResourceCountMarkStart() const;
  1218. __declspec(dllexport) void ResourceCountMarkEnd() const;
  1219. __declspec(dllexport) TInt ResourceCount() const;
  1220. __declspec(dllexport) TInt IsFileOpen(const TDesC& aFile,TBool& anAnswer) const;
  1221. __declspec(dllexport) TInt CheckDisk(const TDesC& aDrive) const;
  1222. __declspec(dllexport) TInt ScanDrive(const TDesC& aDrive) const;
  1223. __declspec(dllexport) TInt GetShortName(const TDesC& aLongName,TDes& aShortName) const;
  1224. __declspec(dllexport) TInt GetLongName(const TDesC& aShortName,TDes& aLongName) const;
  1225. __declspec(dllexport) TBool GetNotifyUser();
  1226. __declspec(dllexport) void SetNotifyUser(TBool aValue);
  1227. __declspec(dllexport) TUint8* IsFileInRom(const TDesC& aFileName) const;
  1228. __declspec(dllexport) TBool IsValidName(const TDesC& anEntryName) const;
  1229. __declspec(dllexport) TBool IsValidName(const TDesC& aFileName,TText& aBadChar) const;
  1230. __declspec(dllexport) TInt GetDriveName(TInt aDrive,TDes& aDriveName) const;
  1231. __declspec(dllexport) TInt SetDriveName(TInt aDrive,const TDesC& aDriveName);
  1232. __declspec(dllexport) TInt LoaderHeapFunction(TInt aFunction, TAny *aArg1=0 , TAny *aArg2=0 );
  1233. __declspec(dllexport) TInt SetErrorCondition(TInt anError,TInt aCount=0);
  1234. __declspec(dllexport) TInt SetDebugRegister(TInt aVal);
  1235. __declspec(dllexport) TInt SetAllocFailure(TInt aAllocNum);
  1236. __declspec(dllexport) void DebugNotify(TInt aDrive,TUint aNotifyType,TRequestStatus& aStat);
  1237. __declspec(dllexport) TInt ControlIo(TInt aDrive,TInt aCommand);
  1238. __declspec(dllexport) TInt ControlIo(TInt aDrive,TInt aCommand,TDes8& aParam1);
  1239. __declspec(dllexport) TInt ControlIo(TInt aDrive,TInt aCommand,TDes8& aParam1,TDes8& aParam2);
  1240. __declspec(dllexport) TInt ControlIo(TInt aDrive,TInt aCommand,TAny* aParam1,TAny* aParam2);
  1241. __declspec(dllexport) TInt LockDrive(TInt aDrv, const TMediaPassword &aOld, const TMediaPassword &aNew, TBool aStr);
  1242. __declspec(dllexport) TInt UnlockDrive(TInt aDrv, const TMediaPassword &Pswd, TBool aStr);
  1243. __declspec(dllexport) TInt ClearPassword(TInt aDrv, const TMediaPassword &aPswd);
  1244. __declspec(dllexport) TInt ErasePassword(TInt aDrv);
  1245. __declspec(dllexport) TInt SetSessionToPrivate(TInt aDrive);
  1246. __declspec(dllexport) TInt PrivatePath(TDes& aPath);
  1247. __declspec(dllexport) TInt CreatePrivatePath(TInt aDrive);
  1248. __declspec(dllexport) void StartupInitComplete(TRequestStatus& aStat);
  1249. __declspec(dllexport) TInt SetLocalDriveMapping(const TDesC8& aMapping);
  1250. __declspec(dllexport) TInt FinaliseDrives();
  1251. __declspec(dllexport) TInt SwapFileSystem(const TDesC& aOldFileSystemName,const TDesC& aNewFileSystemName,TInt aDrive) const;
  1252. __declspec(dllexport) TInt ReserveDriveSpace(TInt aDriveNo, TInt aSpace);
  1253. __declspec(dllexport) TInt GetReserveAccess(TInt aDriveNo);
  1254. __declspec(dllexport) TInt ReleaseReserveAccess(TInt aDriveNo);
  1255. __declspec(dllexport) TInt AddPlugin(const TDesC& aFileName) const;
  1256. __declspec(dllexport) TInt RemovePlugin(const TDesC& aPluginName) const;
  1257. __declspec(dllexport) TInt PluginName(TDes& aPluginName,TInt aDrive,TInt aPos);
  1258. __declspec(dllexport) TInt MountPlugin(const TDesC& aPluginName) const;
  1259. __declspec(dllexport) TInt MountPlugin(const TDesC& aPluginName,TInt aDrive) const;
  1260. __declspec(dllexport) TInt MountPlugin(const TDesC& aPluginName,TInt aDrive, TInt aPos) const;
  1261. __declspec(dllexport) TInt DismountPlugin(const TDesC& aPluginName) const;
  1262. __declspec(dllexport) TInt DismountPlugin(const TDesC& aPluginName,TInt aDrive) const;
  1263. __declspec(dllexport) TInt DismountPlugin(const TDesC& aPluginName,TInt aDrive,TInt aPos) const;
  1264. __declspec(dllexport) void NotifyDismount(TInt aDrive, TRequestStatus& aStat, TNotifyDismountMode aMode=EFsDismountRegisterClient) const;
  1265. __declspec(dllexport) void NotifyDismountCancel(TRequestStatus& aStat) const;
  1266. __declspec(dllexport) void NotifyDismountCancel() const;
  1267. __declspec(dllexport) TInt AllowDismount(TInt aDrive) const;
  1268.     __declspec(dllexport) TInt SetStartupConfiguration(TInt aCommand,TAny* aParam1,TAny* aParam2) const;
  1269. private:
  1270. void GetDirL(const TDesC& aMatchName,TUint anEntryAttMask,TUint anEntrySortKey,CDir*& anEntryList,CDir*& aDirList,RDir& aDir) const;
  1271. void GetDirL(const TDesC& aMatchName,TUint anEntryAttMask,TUint anEntrySortKey,CDir*& anEntryList,RDir& aDir) const;
  1272. void GetDirL(const TDesC& aMatchName,const TUidType& aUidType,TUint anEntrySortKey,CDir*& anEntryList,RDir& aDir) const;
  1273. void DoGetDirL(TUint anEntrySortKey,CDir*& anEntryList,RDir& aDir) const;
  1274. TInt GetOpenFileList(TInt& aSessionNum,TInt& aLocalPos,TThreadId& aThreadId,TEntryArray& anArray) const;
  1275. friend class TOpenFileScan;
  1276. };
  1277. #line 1569
  1278. class RFile : public RSubSessionBase
  1279. {
  1280. public:
  1281. __declspec(dllexport) TInt Open(RFs& aFs,const TDesC& aName,TUint aFileMode);
  1282. __declspec(dllexport) void Close();
  1283. __declspec(dllexport) TInt Create(RFs& aFs,const TDesC& aName,TUint aFileMode);
  1284. __declspec(dllexport) TInt Replace(RFs& aFs,const TDesC& aName,TUint aFileMode);
  1285. __declspec(dllexport) TInt Temp(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aFileMode);
  1286. __declspec(dllexport) TInt Read(TDes8& aDes) const;
  1287. __declspec(dllexport) void Read(TDes8& aDes,TRequestStatus& aStatus) const;
  1288. __declspec(dllexport) TInt Read(TDes8& aDes,TInt aLength) const;
  1289. __declspec(dllexport) void Read(TDes8& aDes,TInt aLength,TRequestStatus& aStatus) const;
  1290. __declspec(dllexport) TInt Read(TInt aPos,TDes8& aDes) const;
  1291. __declspec(dllexport) void Read(TInt aPos,TDes8& aDes,TRequestStatus& aStatus) const;
  1292. __declspec(dllexport) TInt Read(TInt aPos,TDes8& aDes,TInt aLength) const;
  1293. __declspec(dllexport) void Read(TInt aPos,TDes8& aDes,TInt aLength,TRequestStatus& aStatus) const;
  1294. __declspec(dllexport) void ReadCancel(TRequestStatus& aStatus) const;
  1295. __declspec(dllexport) void ReadCancel() const;
  1296. __declspec(dllexport) TInt Write(const TDesC8& aDes);
  1297. __declspec(dllexport) void Write(const TDesC8& aDes,TRequestStatus& aStatus);
  1298. __declspec(dllexport) TInt Write(const TDesC8& aDes,TInt aLength);
  1299. __declspec(dllexport) void Write(const TDesC8& aDes,TInt aLength,TRequestStatus& aStatus);
  1300. __declspec(dllexport) TInt Write(TInt aPos,const TDesC8& aDes);
  1301. __declspec(dllexport) void Write(TInt aPos,const TDesC8& aDes,TRequestStatus& aStatus);
  1302. __declspec(dllexport) TInt Write(TInt aPos,const TDesC8& aDes,TInt aLength);
  1303. __declspec(dllexport) void Write(TInt aPos,const TDesC8& aDes,TInt aLength,TRequestStatus& aStatus);
  1304. __declspec(dllexport) TInt Lock(TInt aPos,TInt aLength) const;
  1305. __declspec(dllexport) TInt UnLock(TInt aPos,TInt aLength) const;
  1306. __declspec(dllexport) TInt Seek(TSeek aMode,TInt& aPos) const;
  1307. __declspec(dllexport) TInt Flush();
  1308. __declspec(dllexport) TInt Size(TInt& aSize) const;
  1309. __declspec(dllexport) TInt SetSize(TInt aSize);
  1310. __declspec(dllexport) TInt Att(TUint& aAttValue) const;
  1311. __declspec(dllexport) TInt SetAtt(TUint aSetAttMask,TUint aClearAttMask);
  1312. __declspec(dllexport) TInt Modified(TTime& aTime) const;
  1313. __declspec(dllexport) TInt SetModified(const TTime& aTime);
  1314. __declspec(dllexport) TInt Set(const TTime& aTime,TUint aSetAttMask,TUint aClearAttMask);
  1315. __declspec(dllexport) TInt ChangeMode(TFileMode aNewMode);
  1316. __declspec(dllexport) TInt Rename(const TDesC& aNewName);
  1317. __declspec(dllexport) TInt Drive(TInt &aDriveNumber, TDriveInfo &aDriveInfo) const;
  1318. __declspec(dllexport) TInt Adopt(RFs& aFs, TInt aHandle);
  1319. __declspec(dllexport) TInt AdoptFromClient(const RMessage2& aMsg, TInt aFsHandleIndex, TInt aFileHandleIndex);
  1320. __declspec(dllexport) TInt AdoptFromServer(TInt aFsHandle, TInt aFileHandle);
  1321. __declspec(dllexport) TInt AdoptFromCreator(TInt aFsIndex, TInt aFileHandleIndex);
  1322. __declspec(dllexport) TInt Name(TDes& aName) const;
  1323. __declspec(dllexport) TInt TransferToServer(TIpcArgs& aIpcArgs, TInt aFsHandleIndex, TInt aFileHandleIndex) const;
  1324. __declspec(dllexport) TInt TransferToClient(const RMessage2& aMsg, TInt aFileHandleIndex) const;
  1325. __declspec(dllexport) TInt TransferToProcess(RProcess& aProcess, TInt aFsHandleIndex, TInt aFileHandleIndex) const;
  1326. __declspec(dllexport) TInt Duplicate(const RFile& aFile, TOwnerType aType=EOwnerProcess);
  1327. __declspec(dllexport) TInt FullName(TDes& aName) const;
  1328. private:
  1329. TInt DuplicateHandle(TInt& aSubSessionHandle) const;
  1330. };
  1331. class RDir : public RSubSessionBase
  1332. #line 1655
  1333. {
  1334. public:
  1335. __declspec(dllexport) TInt Open(RFs& aFs,const TDesC& aMatchName,const TUidType& aUidType);
  1336. __declspec(dllexport) TInt Open(RFs& aFs,const TDesC& aMatchName,TUint anAttMask);
  1337. __declspec(dllexport) void Close();
  1338. __declspec(dllexport) TInt Read(TEntryArray& anArray) const;
  1339. __declspec(dllexport) void Read(TEntryArray& anArray,TRequestStatus& aStatus) const;
  1340. __declspec(dllexport) TInt Read(TEntry& anEntry) const;
  1341. __declspec(dllexport) void Read(TPckg<TEntry>& anEntry,TRequestStatus& aStatus) const;
  1342. };
  1343. class RFormat : public RSubSessionBase
  1344. #line 1681
  1345. {
  1346. public:
  1347. __declspec(dllexport) TInt Open(RFs& aFs,const TDesC& aName,TUint aFormatMode,TInt& aCount);
  1348. __declspec(dllexport) TInt Open(RFs& aFs,const TDesC& aName,TUint aFormatMode,TInt& aCount,const TDesC8& anInfo);
  1349. __declspec(dllexport) void Close();
  1350. __declspec(dllexport) TInt Next(TInt& aStep);
  1351. __declspec(dllexport) void Next(TPckgBuf<TInt>& aStep,TRequestStatus& aStatus);
  1352. };
  1353. class RRawDisk : public RSubSessionBase
  1354. #line 1704
  1355. {
  1356. public:
  1357. __declspec(dllexport) TInt Open(RFs& aFs,TInt aDrive);
  1358. __declspec(dllexport) void Close();
  1359. __declspec(dllexport) TInt Read(TInt64 aPos,TDes8& aDes);
  1360. __declspec(dllexport) TInt Write(TInt64 aPos,TDesC8& aDes);
  1361. private:
  1362. TInt iDrive;
  1363. };
  1364. class CDirStack;
  1365. class CDirScan : public CBase
  1366. #line 1733
  1367.     {
  1368. public:
  1369. enum TScanDirection
  1370. {
  1371. EScanUpTree,
  1372. EScanDownTree
  1373. };
  1374. public:
  1375. __declspec(dllexport) static CDirScan* NewL(RFs& aFs);
  1376. __declspec(dllexport) static CDirScan* NewLC(RFs& aFs);
  1377. __declspec(dllexport) ~CDirScan();
  1378. __declspec(dllexport) void SetScanDataL(const TDesC& aMatchName,TUint anEntryAttMask,TUint anEntrySortMask,TScanDirection aScanDir=EScanDownTree);
  1379. __declspec(dllexport) void NextL(CDir*& aDirEntries);
  1380. __declspec(dllexport) TPtrC AbbreviatedPath();
  1381. __declspec(dllexport) TPtrC FullPath();
  1382. protected:
  1383. CDirScan(RFs& aFs);
  1384. private:
  1385. inline RFs& Fs();
  1386. void UpdateAbbreviatedPath();
  1387. void ScanUpTreeL(CDir*& aDirEntries);
  1388. void ScanDownTreeL(CDir*& aDirEntries);
  1389. void GetDirEntriesL(CDir*& aDirEntries);
  1390. private:
  1391. RFs* const iFs;
  1392. TParse iFullPath;
  1393. TPtrC iAbbreviatedPath;
  1394. TInt iAbbreviatedPathPos;
  1395. TUint iEntryAttMask;
  1396. TUint iEntrySortMask;
  1397. TBool iScanning;
  1398. TScanDirection iScanDir;
  1399. CDirStack* iStack;
  1400. };
  1401. enum TFileManError
  1402. #line 1792
  1403. {
  1404. ENoExtraInformation,
  1405. #line 1808
  1406. EInitializationFailed,
  1407. #line 1819
  1408. EScanNextDirectoryFailed,
  1409. ESrcOpenFailed,
  1410. ETrgOpenFailed,
  1411. ENoFilesProcessed
  1412. };
  1413. class MFileManObserver
  1414. #line 1868
  1415. {
  1416. public:
  1417. enum TControl
  1418. {
  1419. EContinue,
  1420. ERetry,
  1421. EAbort,
  1422. ECancel
  1423. };
  1424. public:
  1425. __declspec(dllexport) virtual TControl NotifyFileManStarted();
  1426. __declspec(dllexport) virtual TControl NotifyFileManOperation();
  1427. __declspec(dllexport) virtual TControl NotifyFileManEnded();
  1428. };
  1429. class CFileBase : public CBase
  1430. #line 1919
  1431. {
  1432. public:
  1433. __declspec(dllexport) void SetObserver(MFileManObserver* anObserver);
  1434. public:
  1435. __declspec(dllexport) const TEntry& CurrentEntry();
  1436. __declspec(dllexport) TPtrC AbbreviatedPath();
  1437. __declspec(dllexport) TPtrC FullPath();
  1438. __declspec(dllexport) TInt GetLastError();
  1439. __declspec(dllexport) TFileManError GetMoreInfoAboutError();
  1440. protected:
  1441. __declspec(dllexport) CFileBase(RFs& anFs);
  1442. __declspec(dllexport) void ConstructL();
  1443. __declspec(dllexport) ~CFileBase();
  1444. __declspec(dllexport) void RunL();
  1445. __declspec(dllexport) void RunInSeparateThreadL(TThreadFunction aThreadFunction);
  1446. virtual void CompleteOperationL() {};
  1447. virtual void DoOperationL() = 0;
  1448. protected:
  1449. RFs iFs;
  1450. RFs iFsOld;
  1451. RThread iFManThread;
  1452. RSemaphore iSynchronizer;
  1453. CDirScan* iScanner;
  1454. CDir* iDirList;
  1455. TInt iCurrentEntry;
  1456. TUint iMatchEntry;
  1457. TUint iSwitches;
  1458. TParse iSrcFile;
  1459. MFileManObserver* iObserver;
  1460. TInt iLastError;
  1461. TFileManError iErrorInfo;
  1462. TRequestStatus* iStatus;
  1463. HBufC* iSessionPath;
  1464. TInt iNumberOfFilesProcessed;
  1465. friend void DoFManBaseOperationL(TAny* aPtr);
  1466. friend TInt FManBaseThreadFunction(TAny* aPtr);
  1467. };
  1468. class CFileMan : public CFileBase
  1469. #line 2007
  1470. {
  1471. public:
  1472. enum TAction
  1473. {
  1474. ENone,
  1475. EAttribs,
  1476. ECopy,
  1477. EDelete,
  1478. EMove,
  1479. ERename,
  1480. ERmDir,
  1481. ERenameInvalidEntry,
  1482. ECopyFromHandle,
  1483. };
  1484. #line 2078
  1485. enum TSwitch
  1486. {
  1487. EOverWrite=1,
  1488. ERecurse=2
  1489. };
  1490. public:
  1491. __declspec(dllexport) static CFileMan* NewL(RFs& aFs);
  1492. __declspec(dllexport) static CFileMan* NewL(RFs& aFs,MFileManObserver* anObserver);
  1493. ~CFileMan();
  1494. __declspec(dllexport) TAction CurrentAction();
  1495. __declspec(dllexport) void GetCurrentTarget(TFileName& aFile);
  1496. __declspec(dllexport) void GetCurrentSource(TFileName& aFile);
  1497. __declspec(dllexport) TInt BytesTransferredByCopyStep();
  1498. public:
  1499. __declspec(dllexport) TInt Attribs(const TDesC& aName,TUint aSetMask,TUint aClearMask,const TTime& aTime,TUint aSwitch=0);
  1500. __declspec(dllexport) TInt Attribs(const TDesC& aName,TUint aSetMask,TUint aClearMask,const TTime& aTime,TUint aSwitch,TRequestStatus& aStatus);
  1501. __declspec(dllexport) TInt Copy(const TDesC& anOld,const TDesC& aNew,TUint aSwitch=EOverWrite);
  1502. __declspec(dllexport) TInt Copy(const TDesC& anOld,const TDesC& aNew,TUint aSwitch,TRequestStatus& aStatus);
  1503. __declspec(dllexport) TInt Delete(const TDesC& aName,TUint aSwitch=0);
  1504. __declspec(dllexport) TInt Delete(const TDesC& aName,TUint aSwitch,TRequestStatus& aStatus);
  1505. __declspec(dllexport) TInt Move(const TDesC& anOld,const TDesC& aNew,TUint aSwitch=EOverWrite);
  1506. __declspec(dllexport) TInt Move(const TDesC& anOld,const TDesC& aNew,TUint aSwitch,TRequestStatus& aStatus);
  1507. __declspec(dllexport) TInt Rename(const TDesC& anOld,const TDesC& aNew,TUint aSwitch=EOverWrite);
  1508. __declspec(dllexport) TInt Rename(const TDesC& anOld,const TDesC& aNew,TUint aSwitch,TRequestStatus& aStatus);
  1509. __declspec(dllexport) TInt RmDir(const TDesC& aDirName);
  1510. __declspec(dllexport) TInt RmDir(const TDesC& aDirName,TRequestStatus& aStatus);
  1511. __declspec(dllexport) TInt Copy(const RFile& anOld,const TDesC& aNew,TUint aSwitches=EOverWrite);
  1512. __declspec(dllexport) TInt Copy(const RFile& anOld,const TDesC& aNew,TUint aSwitches,TRequestStatus& aStatus);
  1513. protected:
  1514. CFileMan(RFs& aFs);
  1515. TInt RenameInvalidEntry(const TDesC& anOld,const TDesC& aNew,TUint aSwitch=EOverWrite);
  1516. private:
  1517. void CompleteOperationL();
  1518. void DoOperationL();
  1519. void CheckForDirectory();
  1520. void SetFlags(TBool aOverWrite,TBool aRecurse,TBool aScanDirection,TBool aMoveRename);
  1521. void GetSrcAndTrg(TParse& aSrcName,TFileName& aTrgName);
  1522. void DoSynchronize(TInt aRetVal);
  1523. TInt CheckRenameAllowed(const TDesC& aSrcName,const TDesC& aTrgName);
  1524. private:
  1525. void DoAttribsL();
  1526. void DoCopyOrMoveL();
  1527. void DoDeleteL();
  1528. void DoRenameL();
  1529. void DoRmDirL();
  1530. void DoCopyFromHandleL();
  1531. TInt DoCopy(const RFile& aSrcFile, RFile& aDstFile, TInt& aRet);
  1532. private:
  1533. TParse iTrgFile;
  1534. TAction iAction;
  1535. TUint iSetMask;
  1536. TUint iClearMask;
  1537. TTime iTime;
  1538. TInt iBytesTransferred;
  1539. RFile iSrcFileHandle;
  1540. friend void RenameInvalidEntryL(RFs& aFs,TParse& aSrcFile);
  1541. };
  1542. class TFindFile
  1543. #line 2167
  1544. {
  1545. public:
  1546. __declspec(dllexport) TFindFile(RFs& aFs);
  1547. __declspec(dllexport) TInt FindByPath(const TDesC& aFileName,const TDesC* aPathList);
  1548. __declspec(dllexport) TInt FindByDir(const TDesC& aFileName,const TDesC& aDirPath);
  1549. __declspec(dllexport) TInt Find();
  1550. __declspec(dllexport) TInt FindWildByPath(const TDesC& aFileName,const TDesC* aPathList,CDir*& aDirList);
  1551. __declspec(dllexport) TInt FindWildByDir(const TDesC& aFileName,const TDesC& aDirPath,CDir*& aDir);
  1552. __declspec(dllexport) TInt FindWild(CDir*& aDirList);
  1553. inline const TDesC& File() const;
  1554. private:
  1555. TInt DoFind();
  1556. TInt DoFindByPath(const TDesC& aFileName,const TDesC* aPathList);
  1557. TInt DoFindByDir(const TDesC& aFileName,const TDesC& aDir);
  1558. TInt DoFindInDir();
  1559. TInt DoFindNextInPath();
  1560. TInt DoFindNextInDriveList();
  1561. private:
  1562. RFs* const iFs;
  1563. TParse iFile;
  1564. TInt iPathPos;
  1565. TInt iCurrentDrive;
  1566. TInt iMode;
  1567. const TDesC* iPath;
  1568. TDriveList iDrvList;
  1569. CDir** iDir;
  1570. TUint32 iReserved;
  1571. };
  1572. #line 2208
  1573. typedef CDir CFileList;
  1574. class TOpenFileScan
  1575. #line 2226
  1576. {
  1577. public:
  1578. __declspec(dllexport) TOpenFileScan(RFs& aFs);
  1579. __declspec(dllexport) void NextL(CFileList*& aFileList);
  1580. __declspec(dllexport) TThreadId ThreadId() const;
  1581. private:
  1582. RFs* iFs;
  1583. TThreadId iThreadId;
  1584. TInt iScanPos;
  1585. TInt iEntryListPos;
  1586. };
  1587. class TFileText
  1588. {
  1589. public:
  1590. enum TFileState
  1591. {
  1592. EStartOfFile,
  1593. ENormal,
  1594. EReverse
  1595. };
  1596. public:
  1597. __declspec(dllexport) TFileText();
  1598. __declspec(dllexport) void Set(RFile& aFile);
  1599. __declspec(dllexport) TInt Read(TDes& aDes);
  1600. __declspec(dllexport) TInt Write(const TDesC& aDes);
  1601. __declspec(dllexport) TInt Seek(TSeek aMode);
  1602. private:
  1603. void NextRecord();
  1604. TInt CheckForTerminator(TBool& anAnswer);
  1605. TInt FillBuffer();
  1606. private:
  1607. const TText* iNext;
  1608. const TText* iEnd;
  1609. TFileState iState;
  1610. RFile iFile;
  1611. TBuf8<0x100> iReadBuf;
  1612. };
  1613. #line 2284
  1614. __declspec(dllexport) TBool FileNamesIdentical(const TDesC& aFileName1,const TDesC& aFileName2);
  1615. #line 2294
  1616. class TLocalDriveMappingInfo
  1617. {
  1618. public:
  1619. enum TDrvMapOperation {EWriteMappingsAndSet=0,EWriteMappingsNoSet=1,ESwapIntMappingAndSet=2};
  1620. public:
  1621. TInt iDriveMapping[KMaxLocalDrives];
  1622. TDrvMapOperation iOperation;
  1623.     };
  1624. typedef TPckgBuf<TLocalDriveMappingInfo> TLocalDriveMappingInfoBuf;
  1625. class RPlugin : public RSubSessionBase
  1626. {
  1627. public:
  1628. __declspec(dllexport) TInt Open(RFs& aFs, TInt aPos);
  1629. __declspec(dllexport) void Close();
  1630. protected:
  1631. __declspec(dllexport) void DoRequest(TInt aReqNo,TRequestStatus& aStatus) const;
  1632. __declspec(dllexport) void DoRequest(TInt aReqNo,TRequestStatus& aStatus,TDes8& a1) const;
  1633. __declspec(dllexport) void DoRequest(TInt aReqNo,TRequestStatus& aStatus,TDes8& a1,TDes8& a2) const;
  1634. __declspec(dllexport) TInt DoControl(TInt aFunction) const;
  1635. __declspec(dllexport) TInt DoControl(TInt aFunction,TDes8& a1) const;
  1636. __declspec(dllexport) TInt DoControl(TInt aFunction,TDes8& a1,TDes8& a2) const;
  1637. __declspec(dllexport) void DoCancel(TUint aReqMask) const;
  1638. };
  1639. #line 2334
  1640. const TInt KPluginAutoAttach = 0x19;
  1641. #line 2345
  1642. const TInt KPluginAutoLocate = 0xC8;
  1643. const TInt KFileServerUidValue = 0x100039e3;
  1644. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\f32file.inl" /* stack depth 6 */
  1645. #line 10
  1646. inline const TUid& TEntry::operator[](TInt anIndex) const
  1647. #line 21
  1648.     {return(iType[anIndex]);}
  1649. inline TBool TEntry::IsUidPresent(TUid aUid) const
  1650. #line 37
  1651.     {return(iType.IsPresent(aUid));}
  1652. inline TBool TEntry::IsTypeValid() const
  1653. #line 51
  1654.     {return(iType.IsValid());}
  1655. inline TUid TEntry::MostDerivedUid() const
  1656. #line 65
  1657.     {return(iType.MostDerived());}
  1658. inline TInt EntrySize(const TEntry& anEntry)
  1659. {return(sizeof(TUint)+sizeof(TInt)+sizeof(TTime)+sizeof(TInt)+sizeof(TUidType)+anEntry.iName.Size());}
  1660. inline const TDesC& TFindFile::File() const
  1661. #line 93
  1662. {return iFile.FullName();}
  1663. inline RFs& CDirScan::Fs()
  1664. {return(*iFs);}
  1665. inline TDriveUnit::operator TInt() const
  1666. {return(iDrive);}
  1667. #line 2355 "C:\Symbian\9.1\S60_3rd\epoc32\include\f32file.h" /* stack depth 5 */
  1668. #line 20 "C:\Symbian\9.1\S60_3rd\epoc32\include\fntstore.h" /* stack depth 4 */
  1669. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\gdi.h" /* stack depth 5 */
  1670. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32std.h" /* stack depth 6 */
  1671. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32strm.h" /* stack depth 7 */
  1672. #line 12
  1673. const TInt KMaxCardinality=0x1fffffff;
  1674. class MStreamBuf;
  1675. class RWriteStream;
  1676. #line 27
  1677. class RReadStream
  1678. {
  1679. public:
  1680. inline RReadStream();
  1681. inline RReadStream(MStreamBuf* aSource);
  1682. inline MStreamBuf* Source();
  1683. inline void Close();
  1684. __declspec(dllexport) void Release();
  1685. __declspec(dllexport) void PushL();
  1686. inline void Pop();
  1687. __declspec(dllexport) void ReadL(TDes8& aDes);
  1688. __declspec(dllexport) void ReadL(TDes8& aDes,TInt aLength);
  1689. __declspec(dllexport) void ReadL(TDes8& aDes,TChar aDelim);
  1690. __declspec(dllexport) void ReadL(TUint8* aPtr,TInt aLength);
  1691. __declspec(dllexport) void ReadL(TInt aLength);
  1692. inline void ReadL(RWriteStream& aStream);
  1693. inline void ReadL(RWriteStream& aStream,TInt aLength);
  1694. __declspec(dllexport) void ReadL(TDes16& aDes);
  1695. __declspec(dllexport) void ReadL(TDes16& aDes,TInt aLength);
  1696. __declspec(dllexport) void ReadL(TDes16& aDes,TChar aDelim);
  1697. __declspec(dllexport) void ReadL(TUint16* aPtr,TInt aLength);
  1698. __declspec(dllexport) TInt8 ReadInt8L();
  1699. __declspec(dllexport) TInt16 ReadInt16L();
  1700. __declspec(dllexport) TInt32 ReadInt32L();
  1701. __declspec(dllexport) TUint8 ReadUint8L();
  1702. __declspec(dllexport) TUint16 ReadUint16L();
  1703. __declspec(dllexport) TUint32 ReadUint32L();
  1704. __declspec(dllexport) TReal32 ReadReal32L() ;
  1705. __declspec(dllexport) TReal64 ReadReal64L() ;
  1706. protected:
  1707. inline void Attach(MStreamBuf* aSource);
  1708. inline void Detach();
  1709. private:
  1710. MStreamBuf* iSrc;
  1711. private:
  1712. friend class RWriteStream;
  1713. };
  1714. template <class T>
  1715. class MExternalizer;
  1716. class TStreamRef;
  1717. #line 82
  1718. class RWriteStream
  1719. {
  1720. public:
  1721. inline RWriteStream();
  1722. inline RWriteStream(const MExternalizer<TStreamRef>& anExter);
  1723. inline RWriteStream(MStreamBuf* aSink);
  1724. inline MStreamBuf* Sink();
  1725. __declspec(dllexport) void Close();
  1726. __declspec(dllexport) void Release();
  1727. __declspec(dllexport) void CommitL();
  1728. __declspec(dllexport) void PushL();
  1729. inline void Pop();
  1730. __declspec(dllexport) void WriteL(const TDesC8& aDes);
  1731. __declspec(dllexport) void WriteL(const TDesC8& aDes,TInt aLength);
  1732. __declspec(dllexport) void WriteL(const TUint8* aPtr,TInt aLength);
  1733. __declspec(dllexport) void WriteL(RReadStream& aStream);
  1734. __declspec(dllexport) void WriteL(RReadStream& aStream,TInt aLength);
  1735. __declspec(dllexport) void WriteL(const TDesC16& aDes);
  1736. __declspec(dllexport) void WriteL(const TDesC16& aDes,TInt aLength);
  1737. __declspec(dllexport) void WriteL(const TUint16* aPtr,TInt aLength);
  1738. __declspec(dllexport) void WriteInt8L(TInt aValue);
  1739. __declspec(dllexport) void WriteInt16L(TInt aValue);
  1740. __declspec(dllexport) void WriteInt32L(TInt32 aValue);
  1741. __declspec(dllexport) void WriteUint8L(TUint aValue);
  1742. __declspec(dllexport) void WriteUint16L(TUint aValue);
  1743. __declspec(dllexport) void WriteUint32L(TUint32 aValue);
  1744. __declspec(dllexport) void WriteReal32L(TReal aValue) ;
  1745. __declspec(dllexport) void WriteReal64L(TReal64 aValue) ;
  1746. protected:
  1747. inline void Attach(MStreamBuf* aSink);
  1748. inline void Detach();
  1749. private:
  1750. __declspec(dllexport) void WriteRefL(TStreamRef aRef);
  1751. private:
  1752. MStreamBuf* iSnk;
  1753. const MExternalizer<TStreamRef> * iExterL;
  1754. private:
  1755. friend class TStreamRef;
  1756. };
  1757. template <class T>
  1758. inline RWriteStream& operator<<(RWriteStream& aStream,const T& anObject);
  1759. template <class T>
  1760. inline RReadStream& operator>>(RReadStream& aStream,T& anObject);
  1761. #line 142
  1762. class TCardinality
  1763. {
  1764. public:
  1765. TCardinality() {}
  1766. inline TCardinality(TInt aCount);
  1767. inline operator TInt() const;
  1768. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  1769. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  1770. private:
  1771. TInt iCount;
  1772. private:
  1773. __declspec(dllexport) static void __DbgChkRange(TInt aCount);
  1774. };
  1775. typedef void (*TExternalizeFunction)(const TAny* aPtr,RWriteStream& aStream);
  1776. typedef void (*TInternalizeFunction)(TAny* aPtr,RReadStream& aStream);
  1777. #line 171
  1778. template <class T>
  1779. class TExternalizer
  1780. {
  1781. public:
  1782. inline void operator()(const T& anObject,RWriteStream& aStream) const;
  1783. inline static TExternalizeFunction Function();
  1784. private:
  1785. static void ExternalizeAsL(const TAny* aPtr,RWriteStream& aStream);
  1786. };
  1787. #line 188
  1788. template<> class TExternalizer<TAny>
  1789. {
  1790. public:
  1791. TExternalizer() {}
  1792. inline TExternalizer(TExternalizeFunction aFunction);
  1793. inline void operator()(const TAny* aPtr,RWriteStream& aStream) const;
  1794. inline TExternalizeFunction Function() const;
  1795. private:
  1796. TExternalizeFunction iFunc;
  1797. };
  1798. template <class T>
  1799. class TInternalizer
  1800. {
  1801. public:
  1802. inline void operator()(T& anObject,RReadStream& aStream) const;
  1803. inline static TInternalizeFunction Function();
  1804. private:
  1805. static void InternalizeAsL(TAny* aPtr,RReadStream& aStream);
  1806. };
  1807. template<> class TInternalizer<TAny>
  1808. {
  1809. public:
  1810. TInternalizer() {}
  1811. inline TInternalizer(TInternalizeFunction aFunction);
  1812. inline void operator()(TAny* aPtr,RReadStream& aStream) const;
  1813. inline TInternalizeFunction Function() const;
  1814. private:
  1815. TInternalizeFunction iFunc;
  1816. };
  1817. #line 258
  1818. template <class T>
  1819. class MExternalizer
  1820. {
  1821. public:
  1822. inline void operator()(const T& anObject,RWriteStream& aStream) const;
  1823. private:
  1824. virtual void ExternalizeL(const T& anObject,RWriteStream& aStream) const=0;
  1825. };
  1826. #line 281
  1827. template <class T>
  1828. class MInternalizer
  1829. {
  1830. public:
  1831. inline void operator()(T& anObject,RReadStream& aStream) const;
  1832. private:
  1833. virtual void InternalizeL(T& anObject,RReadStream& aStream) const=0;
  1834. };
  1835. class TStreamRef
  1836. {
  1837. public:
  1838. inline TStreamRef(const TAny* aPtr,TExternalizeFunction aFunction);
  1839. inline const TAny* Ptr() const;
  1840. inline TExternalizeFunction Function() const;
  1841. inline void ExternalizeL(RWriteStream& aStream) const;
  1842. private:
  1843. const TAny* iPtr;
  1844. TExternalizeFunction iFunc;
  1845. };
  1846. class Externalize
  1847. {
  1848. public:
  1849. class Member {};
  1850. class Function {};
  1851. };
  1852. class Internalize
  1853. {
  1854. public:
  1855. class Member {};
  1856. class Function {};
  1857. };
  1858. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32strm.inl" /* stack depth 8 */
  1859. inline RReadStream::RReadStream()
  1860. : iSrc(0 )
  1861. {}
  1862. inline RReadStream::RReadStream(MStreamBuf* aSource)
  1863. : iSrc(aSource)
  1864. {}
  1865. inline MStreamBuf* RReadStream::Source()
  1866. #line 32
  1867. {return iSrc;}
  1868. inline void RReadStream::Close()
  1869. {Release();}
  1870. inline void RReadStream::ReadL(RWriteStream& aStream)
  1871. {aStream.WriteL(*this);}
  1872. inline void RReadStream::ReadL(RWriteStream& aStream,TInt aLength)
  1873. {aStream.WriteL(*this,aLength);}
  1874. inline void RReadStream::Pop()
  1875. {CleanupStack::Pop();}
  1876. inline void RReadStream::Attach(MStreamBuf* aSource)
  1877. #line 66
  1878. {iSrc=aSource;}
  1879. inline void RReadStream::Detach()
  1880. {iSrc=0 ;}
  1881. inline RWriteStream::RWriteStream()
  1882. : iSnk(0 ),iExterL(0 )
  1883. {}
  1884. inline RWriteStream::RWriteStream(const MExternalizer<TStreamRef>& anExter)
  1885. : iSnk(0 ),iExterL(&anExter)
  1886. {}
  1887. inline RWriteStream::RWriteStream(MStreamBuf* aSink)
  1888. : iSnk(aSink),iExterL(0 )
  1889. {}
  1890. inline MStreamBuf* RWriteStream::Sink()
  1891. {return iSnk;}
  1892. inline void RWriteStream::Pop()
  1893. {CleanupStack::Pop();}
  1894. inline void RWriteStream::Attach(MStreamBuf* aSink)
  1895. #line 119
  1896. {iSnk=aSink;}
  1897. inline void RWriteStream::Detach()
  1898. {iSnk=0 ;}
  1899. inline TCardinality::TCardinality(TInt aCount)
  1900. :iCount(aCount)
  1901. {
  1902. __DbgChkRange(aCount);
  1903. }
  1904. inline TCardinality::operator TInt() const
  1905. {
  1906. __DbgChkRange(iCount);
  1907. return iCount;
  1908. }
  1909. template <class T>
  1910. inline void TExternalizer<T>::operator()(const T& anObject,RWriteStream& aStream) const
  1911. {aStream<<anObject;}
  1912. template <class T>
  1913. inline TExternalizeFunction TExternalizer<T>::Function()
  1914. {return &ExternalizeAsL;}
  1915. template <class T>
  1916. void TExternalizer<T>::ExternalizeAsL(const TAny* aPtr,RWriteStream& aStream)
  1917. {aStream<<*((const T*)aPtr);}
  1918. inline TExternalizer<TAny>::TExternalizer(TExternalizeFunction aFunction)
  1919. : iFunc(aFunction)
  1920. {}
  1921. inline void TExternalizer<TAny>::operator()(const TAny* aPtr,RWriteStream& aStream) const
  1922. {(*iFunc)(aPtr,aStream);}
  1923. inline TExternalizeFunction TExternalizer<TAny>::Function() const
  1924. {return iFunc;}
  1925. template <class T>
  1926. inline void TInternalizer<T>::operator()(T& anObject,RReadStream& aStream) const
  1927. {aStream>>anObject;}
  1928. template <class T>
  1929. inline TInternalizeFunction TInternalizer<T>::Function()
  1930. {return &InternalizeAsL;}
  1931. template <class T>
  1932. void TInternalizer<T>::InternalizeAsL(TAny* aPtr,RReadStream& aStream)
  1933. {aStream>> *((T*)aPtr);}
  1934. inline TInternalizer<TAny>::TInternalizer(TInternalizeFunction aFunction)
  1935. : iFunc(aFunction)
  1936. {}
  1937. inline void TInternalizer<TAny>::operator()(TAny* aPtr,RReadStream& aStream) const
  1938. {(*iFunc)(aPtr,aStream);}
  1939. inline TInternalizeFunction TInternalizer<TAny>::Function() const
  1940. {return iFunc;}
  1941. template <class T>
  1942. inline void MExternalizer<T>::operator()(const T& anObject,RWriteStream& aStream) const
  1943. {ExternalizeL(anObject,aStream);}
  1944. template <class T>
  1945. inline void MInternalizer<T>::operator()(T& anObject,RReadStream& aStream) const
  1946. {InternalizeL(anObject,aStream);}
  1947. inline TStreamRef::TStreamRef(const TAny* aPtr,TExternalizeFunction aFunction)
  1948. : iPtr(aPtr),iFunc(aFunction)
  1949. {}
  1950. inline const TAny* TStreamRef::Ptr() const
  1951. {return iPtr;}
  1952. inline TExternalizeFunction TStreamRef::Function() const
  1953. {return iFunc;}
  1954. inline void TStreamRef::ExternalizeL(RWriteStream& aStream) const
  1955. {aStream.WriteRefL(*this);}
  1956. __declspec(dllexport) void ExternalizeL(TInt64 anInt64,RWriteStream& aStream);
  1957. __declspec(dllexport) void InternalizeL(TInt64& anInt64,RReadStream& aStream);
  1958. __declspec(dllexport) void ExternalizeL(const TDesC8& aDes8,RWriteStream& aStream);
  1959. __declspec(dllexport) void ExternalizeL(const TDesC16& aDes16,RWriteStream& aStream);
  1960. __declspec(dllexport) void InternalizeL(TDes8& aDes8,RReadStream& aStream);
  1961. __declspec(dllexport) void InternalizeL(TDes16& aDes16,RReadStream& aStream);
  1962. __declspec(dllexport) void ExternalizeL(const TCheckedUid& aUid,RWriteStream& aStream);
  1963. __declspec(dllexport) void InternalizeL(TCheckedUid& aUid,RReadStream& aStream);
  1964. __declspec(dllexport) void ExternalizeL(TPoint aPoint,RWriteStream& aStream);
  1965. __declspec(dllexport) void ExternalizeL(TSize aSize,RWriteStream& aStream);
  1966. __declspec(dllexport) void ExternalizeL(const TRect& aRect,RWriteStream& aStream);
  1967. __declspec(dllexport) void InternalizeL(TPoint& aPoint,RReadStream& aStream);
  1968. __declspec(dllexport) void InternalizeL(TSize& aSize,RReadStream& aStream);
  1969. __declspec(dllexport) void InternalizeL(TRect& aRect,RReadStream& aStream);
  1970. __declspec(dllexport) void ExternalizeL(const CBufBase& aBuf,RWriteStream& aStream);
  1971. __declspec(dllexport) void InternalizeL(CBufBase& aBuf,RReadStream& aStream);
  1972. __declspec(dllexport) void ArrayExternalizeCountL(TInt aCount,RWriteStream& aStream);
  1973. __declspec(dllexport) void DoExternalizeAllL(const CArrayFixBase& anArray,RWriteStream& aStream,TExternalizer<TAny> anExter);
  1974. __declspec(dllexport) TInt ArrayInternalizeCountL(RReadStream& aStream);
  1975. __declspec(dllexport) void DoInternalizeAllL(CArrayFixBase& anArray,RReadStream& aStream,TInternalizer<TAny> anInter);
  1976. template <class T>
  1977. inline void ExternalizeCountL(const CArrayFix<T>& anArray,RWriteStream& aStream)
  1978. {ArrayExternalizeCountL(anArray.Count(),aStream);}
  1979. template <class T>
  1980. inline void ExternalizeAllL(const CArrayFix<T>& anArray,RWriteStream& aStream)
  1981. {DoExternalizeAllL(anArray,aStream,TExternalizer<T>::Function());}
  1982. template <class T>
  1983. void InternalizeCountL(CArrayFix<T>& anArray,RReadStream& aStream)
  1984. {
  1985. TInt n=ArrayInternalizeCountL(aStream);
  1986. anArray.ResizeL(n);
  1987. }
  1988. template <class T>
  1989. inline void InternalizeAllL(CArrayFix<T>& anArray,RReadStream& aStream)
  1990. {DoInternalizeAllL(anArray,aStream,TInternalizer<T>::Function());}
  1991. template <class T>
  1992. void ExternalizeL(const CArrayFix<T>& anArray,RWriteStream& aStream)
  1993. {
  1994. ExternalizeCountL(anArray,aStream);
  1995. ExternalizeAllL(anArray,aStream);
  1996. }
  1997. template <class T>
  1998. void InternalizeL(CArrayFix<T>& anArray,RReadStream& aStream)
  1999. {
  2000. InternalizeCountL(anArray,aStream);
  2001. InternalizeAllL(anArray,aStream);
  2002. }
  2003. template <class T>
  2004. inline void ExternalizeL(const T* aPtr,RWriteStream& aStream)
  2005. {aStream<<TStreamRef(aPtr,TExternalizer<T>::Function());}
  2006. template <class T>
  2007. inline void DoExternalizeL(const T& anObject,RWriteStream& aStream,Externalize::Member)
  2008. {anObject.ExternalizeL(aStream);}
  2009. template <class T>
  2010. inline void DoInternalizeL(T& anObject,RReadStream& aStream,Internalize::Member)
  2011. {anObject.InternalizeL(aStream);}
  2012. template <class T>
  2013. inline void DoExternalizeL(const T& anObject,RWriteStream& aStream,Externalize::Function)
  2014. {ExternalizeL(anObject,aStream);}
  2015. template <class T>
  2016. inline void DoInternalizeL(T& anObject,RReadStream& aStream,Internalize::Function)
  2017. {InternalizeL(anObject,aStream);}
  2018. inline Externalize::Member Externalization(const TAny*)
  2019. {return Externalize::Member();}
  2020. inline Internalize::Member Internalization(TAny*)
  2021. {return Internalize::Member();}
  2022. inline Externalize::Function Externalization(const TDesC8*)
  2023. {return Externalize::Function();}
  2024. inline Externalize::Function Externalization(const TDesC16*)
  2025. {return Externalize::Function();}
  2026. inline Internalize::Function Internalization(TDes8*)
  2027. {return Internalize::Function();}
  2028. inline Internalize::Function Internalization(TDes16*)
  2029. {return Internalize::Function();}
  2030. inline Externalize::Function Externalization(const CBufBase*)
  2031. {return Externalize::Function();}
  2032. inline Externalize::Function Externalization(const CArrayFixBase*)
  2033. {return Externalize::Function();}
  2034. inline Internalize::Function Internalization(CBufBase*)
  2035. {return Internalize::Function();}
  2036. inline Internalize::Function Internalization(CArrayFixBase*)
  2037. {return Internalize::Function();}
  2038. template <class T>
  2039. inline Externalize::Function Externalization(T*const*)
  2040. {return Externalize::Function();}
  2041. template <class T>
  2042. inline RWriteStream& operator<<(RWriteStream& aStream,const T& anObject)
  2043. {DoExternalizeL(anObject,aStream,Externalization(&anObject));return aStream;}
  2044. template <class T>
  2045. inline RReadStream& operator>>(RReadStream& aStream,T& anObject)
  2046. {DoInternalizeL(anObject,aStream,Internalization(&anObject));return aStream;}
  2047. inline RWriteStream& operator<<(RWriteStream& aStream,const TInt8& anInt8)
  2048. {aStream.WriteInt8L(anInt8);return aStream;}
  2049. inline RWriteStream& operator<<(RWriteStream& aStream,const TInt16& anInt16)
  2050. {aStream.WriteInt16L(anInt16);return aStream;}
  2051. inline RWriteStream& operator<<(RWriteStream& aStream,const TInt32& anInt32)
  2052. {aStream.WriteInt32L(anInt32);return aStream;}
  2053. inline RWriteStream& operator<<(RWriteStream& aStream,const TUint8& aUint8)
  2054. {aStream.WriteUint8L(aUint8);return aStream;}
  2055. inline RWriteStream& operator<<(RWriteStream& aStream,const TUint16& aUint16)
  2056. {aStream.WriteUint16L(aUint16);return aStream;}
  2057. inline RWriteStream& operator<<(RWriteStream& aStream,const TUint32& aUint32)
  2058. {aStream.WriteUint32L(aUint32);return aStream;}
  2059. inline RWriteStream& operator<<(RWriteStream& aStream,const TReal32& aReal32)
  2060. {aStream.WriteReal32L(aReal32);return aStream;}
  2061. inline RWriteStream& operator<<(RWriteStream& aStream,const TReal64& aReal64)
  2062. {aStream.WriteReal64L(aReal64);return aStream;}
  2063. inline RReadStream& operator>>(RReadStream& aStream,TInt8& anInt8)
  2064. {anInt8=aStream.ReadInt8L();return aStream;}
  2065. inline RReadStream& operator>>(RReadStream& aStream,TInt16& anInt16)
  2066. {anInt16=aStream.ReadInt16L();return aStream;}
  2067. inline RReadStream& operator>>(RReadStream& aStream,TInt32& anInt32)
  2068. {anInt32=aStream.ReadInt32L();return aStream;}
  2069. inline RReadStream& operator>>(RReadStream& aStream,TUint8& aUint8)
  2070. {aUint8=aStream.ReadUint8L();return aStream;}
  2071. inline RReadStream& operator>>(RReadStream& aStream,TUint16& aUint16)
  2072. {aUint16=aStream.ReadUint16L();return aStream;}
  2073. inline RReadStream& operator>>(RReadStream& aStream,TUint32& aUint32)
  2074. {aUint32=aStream.ReadUint32L();return aStream;}
  2075. inline RReadStream& operator>>(RReadStream& aStream,TReal32& aReal32)
  2076. {aReal32=aStream.ReadReal32L();return aStream;}
  2077. inline RReadStream& operator>>(RReadStream& aStream,TReal64& aReal64)
  2078. {aReal64=aStream.ReadReal64L();return aStream;}
  2079. inline RWriteStream& operator<<(RWriteStream& aStream,const TInt64& anInt64)
  2080. {ExternalizeL(anInt64,aStream);return aStream;}
  2081. inline RReadStream& operator>>(RReadStream& aStream,TInt64& anInt64)
  2082. {InternalizeL(anInt64,aStream);return aStream;}
  2083. inline RWriteStream& operator<<(RWriteStream& aStream,const TUid& aUid)
  2084. {return aStream<<aUid.iUid;}
  2085. inline RWriteStream& operator<<(RWriteStream& aStream,const TCheckedUid& aUid)
  2086. {ExternalizeL(aUid,aStream);return aStream;}
  2087. inline RReadStream& operator>>(RReadStream& aStream,TUid& aUid)
  2088. {return aStream>>aUid.iUid;}
  2089. inline RReadStream& operator>>(RReadStream& aStream,TCheckedUid& aUid)
  2090. {InternalizeL(aUid,aStream);return aStream;}
  2091. inline RWriteStream& operator<<(RWriteStream& aStream,const TPoint& aPoint)
  2092. {ExternalizeL(aPoint,aStream);return aStream;}
  2093. inline RWriteStream& operator<<(RWriteStream& aStream,const TSize& aSize)
  2094. {ExternalizeL(aSize,aStream);return aStream;}
  2095. inline RWriteStream& operator<<(RWriteStream& aStream,const TRect& aRect)
  2096. {ExternalizeL(aRect,aStream);return aStream;}
  2097. inline RReadStream& operator>>(RReadStream& aStream,TPoint& aPoint)
  2098. {InternalizeL(aPoint,aStream);return aStream;}
  2099. inline RReadStream& operator>>(RReadStream& aStream,TSize& aSize)
  2100. {InternalizeL(aSize,aStream);return aStream;}
  2101. inline RReadStream& operator>>(RReadStream& aStream,TRect& aRect)
  2102. {InternalizeL(aRect,aStream);return aStream;}
  2103. inline RWriteStream& operator<<(RWriteStream& aStream,const TStreamRef& aRef)
  2104. {aRef.ExternalizeL(aStream);return aStream;}
  2105. #line 351 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32strm.h" /* stack depth 7 */
  2106. #line 8 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32std.h" /* stack depth 6 */
  2107. const TUint32 KNullStreamIdValue=0;
  2108. const TUint32 KMaxStreamIdValue=0xfffffff;
  2109. const TUint32 KMaskStreamIdValue=0xfffffff;
  2110. const TInt KShiftStreamIdValue=28;
  2111. #line 28
  2112. class TStreamId
  2113. {
  2114. public:
  2115. TStreamId() {}
  2116. inline TStreamId(TUint32 aValue);
  2117. inline TBool operator==(TStreamId anId) const;
  2118. inline TBool operator!=(TStreamId anId) const;
  2119. inline void ExternalizeL(RWriteStream& aStream) const;
  2120. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2121. inline TUint32 Value() const;
  2122. private:
  2123. TUint32 iVal;
  2124. private:
  2125. __declspec(dllexport) static void __DbgChkRange(TUint32 aValue);
  2126. };
  2127. class CStreamStore;
  2128. class RStoreReadStream : public RReadStream
  2129. {
  2130. public:
  2131. __declspec(dllexport) void OpenL(const CStreamStore& aStore,TStreamId anId);
  2132. __declspec(dllexport) void OpenLC(const CStreamStore& aStore,TStreamId anId);
  2133. };
  2134. #line 84
  2135. class RStoreWriteStream : public RWriteStream
  2136. {
  2137. public:
  2138. RStoreWriteStream() {}
  2139. inline RStoreWriteStream(const MExternalizer<TStreamRef>& anExter);
  2140. __declspec(dllexport) TStreamId CreateL(CStreamStore& aStore);
  2141. __declspec(dllexport) TStreamId CreateLC(CStreamStore& aStore);
  2142. __declspec(dllexport) void OpenL(CStreamStore& aStore,TStreamId anId);
  2143. __declspec(dllexport) void OpenLC(CStreamStore& aStore,TStreamId anId);
  2144. __declspec(dllexport) void ReplaceL(CStreamStore& aStore,TStreamId anId);
  2145. __declspec(dllexport) void ReplaceLC(CStreamStore& aStore,TStreamId anId);
  2146. __declspec(dllexport) void AppendL(CStreamStore& aStore,TStreamId anId);
  2147. __declspec(dllexport) void AppendLC(CStreamStore& aStore,TStreamId anId);
  2148. };
  2149. #line 115
  2150. class TSwizzleCBase
  2151. {
  2152. public:
  2153. inline TBool operator==(const TSwizzleCBase& aSwizzle) const;
  2154. inline TBool operator==(const TAny* aPtr) const;
  2155. inline TBool operator!=(const TSwizzleCBase& aSwizzle) const;
  2156. inline TBool operator!=(const TAny* aPtr) const;
  2157. inline TBool IsPtr() const;
  2158. inline TBool IsId() const;
  2159. __declspec(dllexport) TStreamId AsId() const;
  2160. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2161. protected:
  2162. TSwizzleCBase() {}
  2163. inline TSwizzleCBase(const TAny* aPtr);
  2164. __declspec(dllexport) TSwizzleCBase(TStreamId anId);
  2165. inline TSwizzleCBase(TStreamRef aRef);
  2166. inline const TAny* Ptr() const;
  2167. __declspec(dllexport) void DoExternalizeL(RWriteStream& aStream,TExternalizer<TAny> anExter) const;
  2168. private:
  2169. __declspec(dllexport) static TBool IsPtrRep(const TAny* aPtr);
  2170. __declspec(dllexport) static TBool IsIdRep(const TAny* aPtr);
  2171. private:
  2172. const TAny* iPtr;
  2173. private:
  2174. __declspec(dllexport) static void __DbgChkPtr(const TAny* aPtr);
  2175. __declspec(dllexport) static void __DbgChkRef(TStreamRef aRef);
  2176. };
  2177. inline TBool operator==(const TAny* aPtr,const TSwizzleCBase& aSwizzle);
  2178. inline TBool operator!=(const TAny* aPtr,const TSwizzleCBase& aSwizzle);
  2179. #line 158
  2180. class TSwizzleBase : public TSwizzleCBase
  2181. {
  2182. protected:
  2183. TSwizzleBase() {}
  2184. inline TSwizzleBase(TAny* aPtr);
  2185. inline TSwizzleBase(TStreamId anId);
  2186. inline TAny* Ptr() const;
  2187. };
  2188. #line 184
  2189. template <class T>
  2190. class TSwizzle : public TSwizzleBase
  2191. {
  2192. public:
  2193. TSwizzle() {}
  2194. inline TSwizzle(T* aPtr);
  2195. inline TSwizzle(TStreamId anId);
  2196. inline TSwizzle<T>& operator=(T* aPtr);
  2197. inline T* AsPtr() const;
  2198. inline operator T*() const;
  2199. inline T& operator*() const;
  2200. inline T* operator->() const;
  2201. inline void ExternalizeL(RWriteStream& aStream) const;
  2202. };
  2203. #line 208
  2204. template<> class TSwizzle<TAny> : public TSwizzleBase
  2205. {
  2206. public:
  2207. TSwizzle() {}
  2208. inline TSwizzle(TAny* aPtr);
  2209. inline TSwizzle(TStreamId anId);
  2210. inline TSwizzle(const TSwizzleBase& aSwizzle);
  2211. inline TSwizzle<TAny>& operator=(TAny* aPtr);
  2212. inline TSwizzle<TAny>& operator=(const TSwizzleBase& aSwizzle);
  2213. inline TAny* AsPtr() const;
  2214. inline operator TAny*() const;
  2215. };
  2216. #line 242
  2217. template <class T>
  2218. class TSwizzleC : public TSwizzleCBase
  2219. {
  2220. public:
  2221. TSwizzleC() {}
  2222. inline TSwizzleC(const T* aPtr);
  2223. inline TSwizzleC(TStreamId anId);
  2224. inline TSwizzleC(TSwizzle<T> aSwizzle);
  2225. inline TSwizzleC<T>& operator=(const T* aPtr);
  2226. inline const T* AsPtr() const;
  2227. inline operator const T*() const;
  2228. inline const T& operator*() const;
  2229. inline const T* operator->() const;
  2230. inline void ExternalizeL(RWriteStream& aStream) const;
  2231. };
  2232. template<> class TSwizzleC<TAny> : public TSwizzleCBase
  2233. {
  2234. public:
  2235. TSwizzleC() {}
  2236. inline TSwizzleC(const TAny* aPtr);
  2237. inline TSwizzleC(TStreamId anId);
  2238. inline TSwizzleC(const TSwizzleCBase& aSwizzle);
  2239. inline TSwizzleC(TStreamRef aRef);
  2240. inline TSwizzleC<TAny>& operator=(const TAny* aPtr);
  2241. inline TSwizzleC<TAny>& operator=(const TSwizzleCBase& aSwizzle);
  2242. inline const TAny* AsPtr() const;
  2243. inline operator const TAny*() const;
  2244. };
  2245. #line 296
  2246. class CStoreMap : public CBase,public MExternalizer<TStreamRef>
  2247. {
  2248. public:
  2249. struct TEntry {TSwizzleC<TAny> swizzle;TStreamId id;};
  2250. typedef const TEntry* TIterator;
  2251. public:
  2252. __declspec(dllexport) static CStoreMap* NewL(CStreamStore& aStore);
  2253. __declspec(dllexport) static CStoreMap* NewLC(CStreamStore& aStore);
  2254. __declspec(dllexport) CStoreMap(CStreamStore& aStore);
  2255. __declspec(dllexport) ~CStoreMap();
  2256. __declspec(dllexport) void BindL(TSwizzleC<TAny> aSwizzle,TStreamId anId);
  2257. __declspec(dllexport) void Unbind(TSwizzleC<TAny> aSwizzle);
  2258. __declspec(dllexport) void Forget(TStreamId anId);
  2259. __declspec(dllexport) void Reset();
  2260. __declspec(dllexport) void ResetAndDestroy();
  2261. __declspec(dllexport) TStreamId At(TSwizzleC<TAny> aSwizzle) const;
  2262. __declspec(dllexport) TSwizzleC<TAny> Label(TStreamId anId) const;
  2263. __declspec(dllexport) TIterator Begin() const;
  2264. __declspec(dllexport) TIterator End() const;
  2265. private:
  2266. void ExternalizeL(const TStreamRef& aRef,RWriteStream& aStream) const;
  2267. private:
  2268. CArrayFixFlat<TEntry> iArray;
  2269. TStreamId iFree;
  2270. CStreamStore* iStore;
  2271. };
  2272. #line 343
  2273. class CStreamDictionary : public CBase
  2274. {
  2275. public:
  2276. __declspec(dllexport) static CStreamDictionary* NewL();
  2277. __declspec(dllexport) static CStreamDictionary* NewLC();
  2278. __declspec(dllexport) CStreamDictionary();
  2279. __declspec(dllexport) ~CStreamDictionary();
  2280. __declspec(dllexport) void AssignL(TUid aUid,TStreamId anId);
  2281. __declspec(dllexport) void Remove(TUid aUid);
  2282. __declspec(dllexport) TStreamId At(TUid aUid) const;
  2283. __declspec(dllexport) TBool IsNull() const;
  2284. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  2285. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2286. private:
  2287. class TEntry
  2288. {
  2289. public:
  2290. TEntry() {}
  2291. inline TEntry(TUid aUid,TStreamId anId);
  2292. void ExternalizeL(RWriteStream& aStream) const;
  2293. void InternalizeL(RReadStream& aStream);
  2294. public:
  2295. TUid iUid;
  2296. TStreamId iId;
  2297. };
  2298. private:
  2299. CArrayFixSeg<TEntry> iArray;
  2300. };
  2301. #line 1 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32std.inl" /* stack depth 7 */
  2302. inline TStreamId::TStreamId(TUint32 aValue)
  2303. : iVal(aValue)
  2304. #line 22
  2305. {
  2306. __DbgChkRange(aValue);
  2307. }
  2308. inline TBool TStreamId::operator==(TStreamId anId) const
  2309. {return iVal==anId.iVal;}
  2310. inline TBool TStreamId::operator!=(TStreamId anId) const
  2311. {return iVal!=anId.iVal;}
  2312. inline void TStreamId::ExternalizeL(RWriteStream& aStream) const
  2313. {
  2314. __DbgChkRange(iVal);
  2315. aStream<<iVal;
  2316. }
  2317. inline TUint32 TStreamId::Value() const
  2318. {
  2319. __DbgChkRange(iVal);
  2320. return iVal;
  2321. }
  2322. inline RStoreWriteStream::RStoreWriteStream(const MExternalizer<TStreamRef>& anExter)
  2323. : RWriteStream(anExter)
  2324. {}
  2325. inline TSwizzleCBase::TSwizzleCBase(TStreamRef aRef)
  2326. : iPtr(aRef.Ptr())
  2327. {
  2328. __DbgChkRef(aRef);
  2329.     }
  2330. inline TBool TSwizzleCBase::operator==(const TSwizzleCBase& aSwizzle) const
  2331. #line 97
  2332. {return iPtr==aSwizzle.iPtr;}
  2333. inline TBool TSwizzleCBase::operator==(const TAny* aPtr) const
  2334. #line 110
  2335. {return iPtr==aPtr;}
  2336. inline TBool TSwizzleCBase::operator!=(const TSwizzleCBase& aSwizzle) const
  2337. #line 126
  2338. {return iPtr!=aSwizzle.iPtr;}
  2339. inline TBool TSwizzleCBase::operator!=(const TAny* aPtr) const
  2340. #line 139
  2341. {return iPtr!=aPtr;}
  2342. inline TBool TSwizzleCBase::IsPtr() const
  2343. {return IsPtrRep(iPtr);}
  2344. inline TBool TSwizzleCBase::IsId() const
  2345. {return IsIdRep(iPtr);}
  2346. inline TSwizzleCBase::TSwizzleCBase(const TAny* aPtr)
  2347. : iPtr(aPtr)
  2348. {
  2349. __DbgChkPtr(aPtr);
  2350.     }
  2351. inline const TAny* TSwizzleCBase::Ptr() const
  2352. {
  2353. __DbgChkPtr(iPtr);
  2354. return iPtr;
  2355. }
  2356. inline TBool operator==(const TAny* aPtr,const TSwizzleCBase& aSwizzle)
  2357. {return aSwizzle==aPtr;}
  2358. inline TBool operator!=(const TAny* aPtr,const TSwizzleCBase& aSwizzle)
  2359. {return aSwizzle!=aPtr;}
  2360. inline TSwizzleBase::TSwizzleBase(TAny* aPtr)
  2361. : TSwizzleCBase(aPtr)
  2362. {}
  2363. inline TSwizzleBase::TSwizzleBase(TStreamId anId)
  2364. : TSwizzleCBase(anId)
  2365. {}
  2366. inline TAny* TSwizzleBase::Ptr() const
  2367. {return (TAny*)TSwizzleCBase::Ptr();}
  2368. template <class T>
  2369. inline TSwizzle<T>::TSwizzle(T* aPtr)
  2370. : TSwizzleBase(aPtr)
  2371. {}
  2372. template <class T>
  2373. inline TSwizzle<T>::TSwizzle(TStreamId anId)
  2374. : TSwizzleBase(anId)
  2375. {}
  2376. template <class T>
  2377. inline TSwizzle<T>& TSwizzle<T>::operator=(T* aPtr)
  2378. {return *this=TSwizzle<T>(aPtr);}
  2379. template <class T>
  2380. inline T* TSwizzle<T>::AsPtr() const
  2381. {return (T*)Ptr();}
  2382. template <class T>
  2383. inline TSwizzle<T>::operator T*() const
  2384. {return AsPtr();}
  2385. template <class T>
  2386. inline T& TSwizzle<T>::operator*() const
  2387. {return *AsPtr();}
  2388. template <class T>
  2389. inline T* TSwizzle<T>::operator->() const
  2390. {return AsPtr();}
  2391. template <class T>
  2392. inline void TSwizzle<T>::ExternalizeL(RWriteStream& aStream) const
  2393. #line 252
  2394. {TSwizzleBase::DoExternalizeL(aStream,TExternalizer<T>::Function());}
  2395. inline TSwizzle<TAny>::TSwizzle(TAny* aPtr)
  2396. : TSwizzleBase(aPtr)
  2397. {}
  2398. inline TSwizzle<TAny>::TSwizzle(TStreamId anId)
  2399. : TSwizzleBase(anId)
  2400. {}
  2401. inline TSwizzle<TAny>::TSwizzle(const TSwizzleBase& aSwizzle)
  2402. : TSwizzleBase(aSwizzle)
  2403. {}
  2404. inline TSwizzle<TAny>& TSwizzle<TAny>::operator=(TAny* aPtr)
  2405. {return *this=TSwizzle<TAny>(aPtr);}
  2406. inline TSwizzle<TAny>& TSwizzle<TAny>::operator=(const TSwizzleBase& aSwizzle)
  2407. {return *this=TSwizzle<TAny>(aSwizzle);}
  2408. inline TAny* TSwizzle<TAny>::AsPtr() const
  2409. {return Ptr();}
  2410. inline TSwizzle<TAny>::operator TAny*() const
  2411. {return AsPtr();}
  2412. template <class T>
  2413. inline TSwizzleC<T>::TSwizzleC(const T* aPtr)
  2414. : TSwizzleCBase(aPtr)
  2415. {}
  2416. template <class T>
  2417. inline TSwizzleC<T>::TSwizzleC(TStreamId anId)
  2418. : TSwizzleCBase(anId)
  2419. {}
  2420. template <class T>
  2421. inline TSwizzleC<T>::TSwizzleC(TSwizzle<T> aSwizzle)
  2422. : TSwizzleCBase(aSwizzle)
  2423. #line 328
  2424. {}
  2425. template <class T>
  2426. inline TSwizzleC<T>& TSwizzleC<T>::operator=(const T* aPtr)
  2427. {return *this=TSwizzleC<T>(aPtr);}
  2428. template <class T>
  2429. inline const T* TSwizzleC<T>::AsPtr() const
  2430. #line 350
  2431. {return (const T*)Ptr();}
  2432. template <class T>
  2433. inline TSwizzleC<T>::operator const T*() const
  2434. {return AsPtr();}
  2435. template <class T>
  2436. inline const T& TSwizzleC<T>::operator*() const
  2437. {return *AsPtr();}
  2438. template <class T>
  2439. inline const T* TSwizzleC<T>::operator->() const
  2440. #line 373
  2441. {return AsPtr();}
  2442. template <class T>
  2443. inline void TSwizzleC<T>::ExternalizeL(RWriteStream& aStream) const
  2444. #line 393
  2445. {TSwizzleCBase::DoExternalizeL(aStream,TExternalizer<T>::Function());}
  2446. inline TSwizzleC<TAny>::TSwizzleC(const TAny* aPtr)
  2447. : TSwizzleCBase(aPtr)
  2448. {}
  2449. inline TSwizzleC<TAny>::TSwizzleC(TStreamId anId)
  2450. : TSwizzleCBase(anId)
  2451. {}
  2452. inline TSwizzleC<TAny>::TSwizzleC(const TSwizzleCBase& aSwizzle)
  2453. : TSwizzleCBase(aSwizzle)
  2454. {}
  2455. inline TSwizzleC<TAny>::TSwizzleC(TStreamRef aRef)
  2456. : TSwizzleCBase(aRef)
  2457.   {}
  2458. inline TSwizzleC<TAny>& TSwizzleC<TAny>::operator=(const TAny* aPtr)
  2459. {return *this=TSwizzleC<TAny>(aPtr);}
  2460. inline TSwizzleC<TAny>& TSwizzleC<TAny>::operator=(const TSwizzleCBase& aSwizzle)
  2461. {return *this=TSwizzleC<TAny>(aSwizzle);}
  2462. inline const TAny* TSwizzleC<TAny>::AsPtr() const
  2463. {return Ptr();}
  2464. inline TSwizzleC<TAny>::operator const TAny*() const
  2465. {return AsPtr();}
  2466. #line 375 "C:\Symbian\9.1\S60_3rd\epoc32\include\s32std.h" /* stack depth 6 */
  2467. #line 21 "C:\Symbian\9.1\S60_3rd\epoc32\include\gdi.h" /* stack depth 5 */
  2468. const TInt KDefaultScreenNo = 0;
  2469. class TOpenFontCharMetrics;
  2470. const TInt KTwipsPerInch=1440;
  2471. const TInt KTwipsPerPoint=20;
  2472. const TInt KPointsPerInch=72;
  2473. const TInt KTwipsPerCm=567;
  2474. #line 131
  2475. enum TGdiPanic
  2476. {
  2477. EGdiPanic_Unknown = 0,
  2478. EGdiPanic_InvalidInputParam = 1,
  2479. EGdiPanic_OutOfText = 2,
  2480. EGdiPanic_Invariant = 3
  2481. };
  2482. #line 178
  2483. class TRgb
  2484. {
  2485. public:
  2486. inline TRgb();
  2487. inline TRgb(TUint32 aValue);
  2488. inline TRgb(TUint32 aInternalValue, TInt aAlpha);
  2489. inline TRgb(TInt aRed,TInt aGreen,TInt aBlue);
  2490. inline TRgb(TInt aRed, TInt aGreen, TInt aBlue, TInt aAlpha);
  2491. inline TInt Red() const;
  2492. inline TInt Green() const;
  2493. inline TInt Blue() const;
  2494. inline TInt Alpha() const;
  2495. __declspec(dllexport) void SetRed(TInt aRed);
  2496. __declspec(dllexport) void SetGreen(TInt aGreen);
  2497. __declspec(dllexport) void SetBlue(TInt aBlue);
  2498. __declspec(dllexport) void SetAlpha(TInt aAlpha);
  2499. __declspec(dllexport) static TRgb Gray2(TInt aGray2);
  2500. __declspec(dllexport) static TRgb Gray4(TInt aGray4);
  2501. __declspec(dllexport) static TRgb Gray16(TInt aGray16);
  2502. __declspec(dllexport) static TRgb Gray256(TInt aGray256);
  2503. __declspec(dllexport) static TRgb Color16(TInt aColor16);
  2504. __declspec(dllexport) static TRgb Color256(TInt aColor256);
  2505. __declspec(dllexport) static TRgb Color4K(TInt aColor4K);
  2506. __declspec(dllexport) static TRgb Color64K(TInt aColor64K);
  2507. __declspec(dllexport) static TRgb Color16M(TInt aColor16M);
  2508. __declspec(dllexport) TInt Gray2() const;
  2509. __declspec(dllexport) TInt Gray4() const;
  2510. __declspec(dllexport) TInt Gray16() const;
  2511. __declspec(dllexport) TInt Gray256() const;
  2512. __declspec(dllexport) TInt Color16() const;
  2513. __declspec(dllexport) TInt Color256() const;
  2514. __declspec(dllexport) TInt Color4K() const;
  2515. __declspec(dllexport) TInt Color64K() const;
  2516. __declspec(dllexport) TInt Color16M() const;
  2517. inline TBool operator==(const TRgb& aColor) const;
  2518. inline TBool operator!=(const TRgb& aColor) const;
  2519. inline TRgb operator~() const;
  2520. inline TRgb operator&(const TRgb& aColor);
  2521. inline TRgb operator|(const TRgb& aColor);
  2522. inline TRgb operator^(const TRgb& aColor);
  2523. inline TRgb& operator&=(const TRgb& aColor);
  2524. inline TRgb& operator|=(const TRgb& aColor);
  2525. inline TRgb& operator^=(const TRgb& aColor);
  2526. inline TUint32 Value() const;
  2527. inline TUint32 Internal() const;
  2528. inline void SetInternal(TUint32 aInternal);
  2529. __declspec(dllexport) TInt Difference(const TRgb& aColor) const;
  2530. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2531. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  2532. __declspec(dllexport) static TRgb Color16MU(TInt a0RGB);
  2533. __declspec(dllexport) TInt Color16MU() const;
  2534. __declspec(dllexport) static TRgb Color16MA(TUint aARGB);
  2535. __declspec(dllexport) TUint Color16MA() const;
  2536. inline TInt _Gray2() const;
  2537. inline TInt _Gray4() const;
  2538. inline TInt _Gray16() const;
  2539. inline TInt _Gray256() const;
  2540. inline TInt _Color4K() const;
  2541. inline TInt _Color64K() const;
  2542. inline TInt _Color16M() const;
  2543. inline TInt _Color16MU() const;
  2544. inline TUint _Color16MA() const;
  2545. inline static TRgb _Gray2(TInt aGray2);
  2546. inline static TRgb _Gray4(TInt aGray4);
  2547. inline static TRgb _Gray16(TInt aGray16);
  2548. inline static TRgb _Gray256(TInt aGray256);
  2549. inline static TRgb _Color4K(TInt aColor4K);
  2550. inline static TRgb _Color64K(TInt aColor64K);
  2551. inline static TRgb _Color16M(TInt aColor16M);
  2552. inline static TRgb _Color16MU(TInt a0RGB);
  2553. inline static TRgb _Color16MA(TUint aARGB);
  2554. private:
  2555. TUint32 iValue;
  2556. };
  2557. #line 279
  2558. enum TDisplayMode
  2559. {
  2560. ENone,
  2561. EGray2,
  2562. EGray4,
  2563. EGray16,
  2564. EGray256,
  2565. EColor16,
  2566. EColor256,
  2567. EColor64K,
  2568. EColor16M,
  2569. ERgb,
  2570. EColor4K,
  2571. EColor16MU,
  2572. EColor16MA,
  2573. EColorLast
  2574. };
  2575. class TDisplayModeUtils
  2576. {
  2577. public:
  2578. __declspec(dllexport) static TBool IsDisplayModeColor(TDisplayMode aDispMode);
  2579. __declspec(dllexport) static TInt NumDisplayModeColors(TDisplayMode aDispMode);
  2580. __declspec(dllexport) static TInt NumDisplayModeBitsPerPixel(TDisplayMode aDispMode);
  2581. };
  2582. #line 351
  2583. class CPalette : public CBase
  2584. {
  2585. public:
  2586. __declspec(dllexport) static CPalette* NewL(TInt aNumberOfEntries);
  2587. __declspec(dllexport) static CPalette* NewDefaultL(TDisplayMode aDispMode);
  2588. __declspec(dllexport) ~CPalette();
  2589. __declspec(dllexport) void Clear();
  2590. inline TInt Entries() const;
  2591. __declspec(dllexport) TRgb GetEntry(TInt aPaletteIndex) const;
  2592. __declspec(dllexport) TRgb NearestEntry(const TRgb& aColor) const;
  2593. __declspec(dllexport) TInt NearestIndex(const TRgb& aColor) const;
  2594. __declspec(dllexport) void SetEntry(TInt aPaletteIndex,const TRgb& aPaletteEntry);
  2595. __declspec(dllexport) void GetDataPtr(TInt aFirstColor,TInt aNumColors,TPtr8& aPtr);
  2596. protected:
  2597. __declspec(dllexport) CPalette();
  2598. void ConstructL(TInt aNumberOfEntries);
  2599. protected:
  2600. TRgb* iArray;
  2601. TInt iNumEntries;
  2602. };
  2603. class TColor256Util
  2604. {
  2605. public:
  2606. __declspec(dllexport) void Construct(const CPalette& aPalette);
  2607. __declspec(dllexport) TInt Color256(TRgb aRgb) const;
  2608. __declspec(dllexport) void Color256(TUint8* aDestination,const TRgb* aSource,TInt aNumPixels) const;
  2609. inline TRgb Color256(TInt aColor256) const;
  2610. __declspec(dllexport) static const TColor256Util* Default();
  2611. public:
  2612. TUint32 iColorTable[256];
  2613. #line 404
  2614. TUint8 iInverseColorTable[0x1000];
  2615. };
  2616. #line 419
  2617. class TLinearDDA
  2618. {
  2619. public:
  2620. enum TLineMode
  2621. {
  2622. ECenter,
  2623. ELeft
  2624. };
  2625. public:
  2626. __declspec(dllexport) TLinearDDA();
  2627. __declspec(dllexport) TLinearDDA(const TLinearDDA& aLine);
  2628. __declspec(dllexport) void Construct(const TPoint& aStart,const TPoint& aFinish,TLineMode aMode=ECenter);
  2629. __declspec(dllexport) TBool SingleStep(TPoint& aPosition);
  2630. __declspec(dllexport) TBool SingleScanline(TPoint& aStartPosition,TPoint& aEndPosition);
  2631. __declspec(dllexport) TBool NextStep(TPoint& aPosition);
  2632. __declspec(dllexport) void JumpToRect(const TRect& aRect);
  2633. __declspec(dllexport) void JumpToXCoord(const TInt aXCoord,TInt& aYCoord);
  2634. __declspec(dllexport) void JumpToYCoord(TInt& aXCoord,const TInt aYCoord);
  2635. private:
  2636. void UpdatePosition();
  2637. private:
  2638. enum TLineStatus
  2639. {
  2640. EInitialised,
  2641. ECurrent,
  2642. EComplete
  2643. };
  2644. private:
  2645. TInt iCount;
  2646. TSize iDifference;
  2647. TPoint iFinish;
  2648. TInt iGradient;
  2649. TPoint iInc;
  2650. TPoint iPos;
  2651. TPoint iStart;
  2652. TRect iBoundingRect;
  2653. TBool iBoundingRectSet;
  2654. TBool iInside;
  2655. TLineStatus iStatus;
  2656. };
  2657. #line 471
  2658. enum TFontPosture
  2659. {
  2660. EPostureUpright,
  2661. EPostureItalic
  2662. };
  2663. enum TFontStrokeWeight
  2664. {
  2665. EStrokeWeightNormal,
  2666. EStrokeWeightBold
  2667. };
  2668. enum TFontPrintPosition
  2669. {
  2670. EPrintPosNormal,
  2671. EPrintPosSuperscript,
  2672. EPrintPosSubscript
  2673. };
  2674. enum TFontUnderline
  2675. {
  2676. EUnderlineOff,
  2677. EUnderlineOn
  2678. };
  2679. enum TFontStrikethrough
  2680. {
  2681. EStrikethroughOff,
  2682. EStrikethroughOn
  2683. };
  2684. const TInt KMaxTypefaceNameLength=0x18;
  2685. #line 556
  2686. class TTypeface
  2687.     {
  2688. public:
  2689. enum
  2690. {
  2691. EProportional=1,
  2692. ESerif=2,
  2693. ESymbol=4
  2694. };
  2695. public:
  2696. __declspec(dllexport) TTypeface();
  2697. __declspec(dllexport) TBool operator==(const TTypeface& aTypeface) const;
  2698. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2699. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  2700. __declspec(dllexport) void SetAttributes(TInt aMask);
  2701. __declspec(dllexport) void SetIsProportional(TBool aIsProportional);
  2702. __declspec(dllexport) void SetIsSerif(TBool aIsSerif);
  2703. __declspec(dllexport) void SetIsSymbol(TBool aIsSymbol);
  2704. __declspec(dllexport) TInt Attributes() const;
  2705. __declspec(dllexport) TBool IsProportional() const;
  2706. __declspec(dllexport) TBool IsSerif() const;
  2707. __declspec(dllexport) TBool IsSymbol() const;
  2708. public:
  2709.     TBufC<KMaxTypefaceNameLength> iName;
  2710. private:
  2711.     TUint32 iFlags;
  2712.     };
  2713. #line 600
  2714. enum TGlyphBitmapType
  2715. {
  2716. EDefaultGlyphBitmap = 0,
  2717. EMonochromeGlyphBitmap,
  2718. EAntiAliasedGlyphBitmap
  2719. };
  2720. #line 618
  2721. class FontEffect
  2722. {
  2723. public:
  2724. enum TEffect
  2725. {
  2726. ENone = 0x0,
  2727. EAlgorithmicBold= 0x10,
  2728. EDropShadow = 0x20,
  2729. EOutline = 0x40,
  2730. EEmbossed = 0x80,
  2731. EEngraved      = 0x100,
  2732. ESoftEdge = 0x200,
  2733. EUserDefined1 = 0x400,
  2734. EUserDefined2 = 0x800,
  2735. EUserDefined3 = 0x1000,
  2736. EUserDefined4 = 0x2000,
  2737. EUserDefined5 = 0x4000,
  2738. EUserDefined6 = 0x8000,
  2739. };
  2740. public:
  2741. __declspec(dllexport) static TBool IsEffectOn(TEffect aEffect, TUint32 aFontEffect);
  2742. __declspec(dllexport) static void SetEffect(TEffect aEffect, TBool aOn, TUint32& aFontEffect);
  2743. };
  2744. #line 661
  2745. class TFontStyle
  2746. {
  2747. public:
  2748. __declspec(dllexport) TFontStyle();
  2749. __declspec(dllexport) TFontStyle(TFontPosture aPost,TFontStrokeWeight aStrWgt,TFontPrintPosition aPrintPos);
  2750. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2751. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  2752. __declspec(dllexport) TFontPosture Posture() const;
  2753. __declspec(dllexport) TFontStrokeWeight StrokeWeight() const;
  2754. __declspec(dllexport) TFontPrintPosition PrintPosition() const;
  2755. __declspec(dllexport) void SetPosture(TFontPosture aPosture);
  2756. __declspec(dllexport) void SetStrokeWeight(TFontStrokeWeight aStrokeWeight);
  2757. __declspec(dllexport) void SetPrintPosition(TFontPrintPosition aPrintPosition);
  2758. inline TGlyphBitmapType BitmapType() const;
  2759. inline void SetBitmapType(TGlyphBitmapType aBitmapType);
  2760. inline TBool operator==(const TFontStyle& aFontStyle) const;
  2761. __declspec(dllexport) TUint32 Effects() const;
  2762. __declspec(dllexport) TBool IsEffectOn(FontEffect::TEffect aEffect) const;
  2763. __declspec(dllexport) void SetEffects(TUint32 aEffects);
  2764. __declspec(dllexport) void SetEffects(FontEffect::TEffect aEffect, TBool aOn);
  2765. private:
  2766. enum
  2767. {
  2768. EItalic=0x1,
  2769. EBold=0x2,
  2770. ESuper=0x4,
  2771. ESub=0x8
  2772. };
  2773. private:
  2774. TUint32 iFlags;
  2775. TAny* iReserved1;
  2776. TAny* iReserved2;
  2777. };
  2778. #line 703
  2779. class TFontSpec
  2780. {
  2781. public:
  2782. __declspec(dllexport) TFontSpec();
  2783. __declspec(dllexport) TFontSpec(const TDesC& aTypefaceName,TInt aHeight);
  2784. __declspec(dllexport) TBool operator==(const TFontSpec& aFontSpec) const;
  2785. __declspec(dllexport) void InternalizeL(RReadStream& aStream);
  2786. __declspec(dllexport) void ExternalizeL(RWriteStream& aStream) const;
  2787. public:
  2788. TTypeface iTypeface;
  2789. TInt iHeight;
  2790. TFontStyle iFontStyle;
  2791. };
  2792. #line 731
  2793. class TTypefaceSupport
  2794.     {
  2795. public:
  2796.     TTypeface iTypeface;
  2797.     TInt iNumHeights;
  2798.     TInt iMinHeightInTwips;
  2799.     TInt iMaxHeightInTwips;
  2800.     TBool iIsScalable;
  2801.     };
  2802. const TInt KSuperSubScalingPercentage=67;
  2803. const TInt KSuperscriptOffsetPercentage=-28;
  2804. const TInt KSubscriptOffsetPercentage=14;
  2805. class CFont;
  2806. #line 783
  2807. class CTypefaceStore : public CBase
  2808. {
  2809. public:
  2810. __declspec(dllexport) ~CTypefaceStore();
  2811. #line 801
  2812. virtual TInt GetNearestFontInTwips(CFont*& aFont, const TFontSpec& aFontSpec) = 0;
  2813. #line 815
  2814. virtual TInt GetNearestFontToDesignHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec) = 0;
  2815. #line 836
  2816. virtual TInt GetNearestFontToMaxHeightInTwips(CFont*& aFont, const TFontSpec& aFontSpec, TInt aMaxHeight) = 0;
  2817. virtual TInt NumTypefaces() const=0;
  2818. #line 854
  2819. virtual void TypefaceSupport(TTypefaceSupport& aTypefaceSupport,TInt aTypefaceIndex) const=0;
  2820. #line 865
  2821. virtual TInt FontHeightInTwips(TInt aTypefaceIndex,TInt aHeightIndex) const=0;
  2822. __declspec(dllexport) void ReleaseFont(CFont* aFont);
  2823. __declspec(dllexport) static TInt BaselineOffset(TInt aHeight,TFontPrintPosition aPos);
  2824. __declspec(dllexport) static TInt SuperSubHeight(TInt aHeight,TFontPrintPosition aPos);
  2825. protected:
  2826. __declspec(dllexport) CTypefaceStore();
  2827. __declspec(dllexport) void ConstructL();
  2828. __declspec(dllexport) void AddFontL(CFont* aFont);
  2829. protected:
  2830. class TFontAccess
  2831. {
  2832. public:
  2833. CFont* iFont;
  2834. TInt iAccessCount;
  2835. };
  2836. protected:
  2837. #line 896
  2838. CArrayFixFlat<TFontAccess> * iFontAccess;
  2839. };
  2840. const TInt KMaxFontCacheEntries=32;
  2841. #line 919
  2842. class CFontCache : public CBase
  2843. {
  2844. public:
  2845. __declspec(dllexport) CFontCache();
  2846. __declspec(dllexport) CFontCache(TInt aMaxEntries);
  2847. __declspec(dllexport) ~CFontCache();
  2848. __declspec(dllexport) CFont* Search(const TFontSpec& aFontSpec);
  2849. __declspec(dllexport) CFont* AddEntryL(CFont* aFont,const TFontSpec& aFontSpec);
  2850. __declspec(dllexport) CFont* RemoveFirstEntry();
  2851. public:
  2852. TInt iNumHits;
  2853. TInt iNumMisses;
  2854. private:
  2855. class CFontCacheEntry : public CBase
  2856. {
  2857. public:
  2858. CFontCacheEntry(CFont* aFont,const TFontSpec& aFontSpec,CFontCacheEntry* aNext);
  2859. public:
  2860. CFont* iFont;
  2861. TFontSpec iSpec;
  2862. CFontCacheEntry* iNext;
  2863. };
  2864. private:
  2865. TInt iNumEntries;
  2866. TInt iMaxEntries;
  2867. CFontCacheEntry* iFirst;
  2868. };
  2869. #line 960
  2870. class MGraphicsDeviceMap
  2871.     {
  2872. public:
  2873. __declspec(dllexport) MGraphicsDeviceMap();
  2874. __declspec(dllexport) virtual ~MGraphicsDeviceMap();
  2875. __declspec(dllexport) TPoint TwipsToPixels(const TPoint& aTwipPoint) const;
  2876. __declspec(dllexport) TRect TwipsToPixels(const TRect& aTwipRect) const;
  2877. __declspec(dllexport) TPoint PixelsToTwips(const TPoint& aPixelPoint) const;
  2878. __declspec(dllexport) TRect PixelsToTwips(const TRect& aPixelRect) const;
  2879. virtual TInt HorizontalTwipsToPixels(TInt aTwips) const=0;
  2880. virtual TInt VerticalTwipsToPixels(TInt aTwips) const=0;
  2881. virtual TInt HorizontalPixelsToTwips(TInt aPixels) const=0;
  2882. virtual TInt VerticalPixelsToTwips(TInt aPixels) const=0;
  2883. #line 1016
  2884. virtual TInt GetNearestFontInTwips(CFont*& aFont,const TFontSpec& aFontSpec)=0;
  2885. #line 1034
  2886. virtual TInt GetNearestFontToDesignHeightInTwips(CFont*& , const TFontSpec& ){return 0;}
  2887. #line 1056
  2888. virtual TInt GetNearestFontToMaxHeightInTwips(CFont*& , const TFontSpec& , TInt ){return 0;}
  2889. #line 1068
  2890. virtual void ReleaseFont(CFont* aFont)=0;
  2891.     };
  2892. class CGraphicsContext;
  2893. #line 1083
  2894. class CGraphicsDevice : public CBase , public MGraphicsDeviceMap
  2895.     {
  2896. public:
  2897. virtual TDisplayMode DisplayMode() const=0;
  2898. virtual TSize SizeInPixels() const=0;
  2899. virtual TSize SizeInTwips() const=0;
  2900.     virtual TInt CreateContext(CGraphicsContext*& aGC)=0;
  2901.     virtual TInt NumTypefaces() const=0;
  2902. #line 1129
  2903.     virtual void TypefaceSupport(TTypefaceSupport& aTypefaceSupport,TInt aTypefaceIndex) const=0;
  2904. #line 1143
  2905. virtual TInt FontHeightInTwips(TInt aTypefaceIndex,TInt aHeightIndex) const=0;
  2906. virtual void PaletteAttributes(TBool& aModifiable,TInt& aNumEntries) const=0;
  2907. virtual void SetPalette(CPalette* aPalette)=0;
  2908. virtual TInt GetPalette(CPalette*& aPalette) const=0;
  2909.     };
  2910. #line 1175
  2911. class TCodeSection
  2912. {
  2913. public:
  2914. TInt iStart;
  2915. TInt iEnd;
  2916. };
  2917. const TUid KFontCapitalAscent = {0x1020498E};
  2918. const TUid KFontMaxAscent = {0x10204B10};
  2919. const TUid KFontStandardDescent = {0x10204B11};
  2920. const TUid KFontMaxDescent = {0x10205AFC};
  2921. const TUid KFontLineGap = {0x10204B12};
  2922. #line 1209
  2923. class CFont : public CBase
  2924. {
  2925. friend class CTypefaceStore;
  2926. public:
  2927. #line 1221
  2928. enum TTextDirection
  2929. {
  2930. EHorizontal,
  2931. EVertical
  2932. };
  2933. #line 1240
  2934. class TPositionParam
  2935. {
  2936. public:
  2937. TPositionParam():
  2938. iDirection(EHorizontal),
  2939. iFlags(0),
  2940. iPosInText(0),
  2941. iOutputGlyphs(0)
  2942. {
  2943. }
  2944. enum
  2945. {
  2946. EMaxInputChars = 18,
  2947. EMaxOutputGlyphs = 8
  2948. };
  2949. enum TFlags
  2950. {
  2951. EFLogicalOrder = 1
  2952. };
  2953. TInt16 iDirection;
  2954. TUint16 iFlags;
  2955. TPtrC iText;
  2956. TInt iPosInText;
  2957. TPoint iPen;
  2958. class TOutput
  2959. {
  2960. public:
  2961. TOutput() : iBitmapSize(TSize::EUninitialized),
  2962. iBounds(TRect::EUninitialized) {}
  2963. TUint iCode;
  2964. const TUint8* iBitmap;
  2965. TSize iBitmapSize;
  2966. TRect iBounds;
  2967. };
  2968. TOutput iOutput[EMaxOutputGlyphs];
  2969. TInt iOutputGlyphs;
  2970. };
  2971. #line 1317
  2972. class TMeasureTextInput
  2973. {
  2974. public:
  2975. TMeasureTextInput():
  2976. iStartInputChar(0),
  2977. iEndInputChar(KMaxTInt),
  2978. iDirection(EHorizontal),
  2979. iFlags(0),
  2980. iMaxAdvance(KMaxTInt),
  2981. iMaxBounds(KMaxTInt),
  2982. iCharJustNum(0),
  2983. iCharJustExcess(0),
  2984. iWordJustNum(0),
  2985. iWordJustExcess(0)
  2986. {
  2987. }
  2988. enum TFlags
  2989. {
  2990. EFVisualOrder = 1
  2991. };
  2992. TInt iStartInputChar;
  2993. TInt iEndInputChar;
  2994. TUint16 iDirection;
  2995. TUint16 iFlags;
  2996. TInt iMaxAdvance;
  2997. TInt iMaxBounds;
  2998. TInt iCharJustNum;
  2999. TInt iCharJustExcess;
  3000. TInt iWordJustNum;
  3001. TInt iWordJustExcess;
  3002. };
  3003. #line 1389
  3004. class TMeasureTextOutput
  3005. {
  3006. public:
  3007. TInt iChars;
  3008. TInt iGlyphs;
  3009. TInt iGroups;
  3010. TInt iSpaces;
  3011. TRect iBounds;
  3012. TSize iMaxGlyphSize;
  3013. };
  3014. #line 1422
  3015. enum TCharacterDataAvailability
  3016. {
  3017. ENoCharacterData,
  3018. ECharacterWidthOnly,
  3019. EAllCharacterData
  3020. };
  3021. private: