Password Safe for Pocket PC - Release Notes =========================================== Version 1.92c.1 --------------- These bugs have, I believe, been fixed: - 787325 (Endianness of the MIPS processor is wrong) - 791417 & 792555 (Passwords are saved by the Pocket PC autocomplete feature) - 791423 (Multiline notes are displayed incorrectly in the edit dialog) The following new features have been added: - There is a new check box option ("Double-click shows password") in Options/Display that changes the behaviour of a double click on a password entry. Then checked, double clicks present a dialogue box showing the password. When unchecked the password is copied to the clipboard as normal. Version 1.92c ------------- Installation is still manual for now, see below for details. If you're upgrading from an earlier release simple copy the appropriate file from this release over the existing file. Obviously you'll want to back up your device first, though! This release: 1. Integrates the latest bug fixes from the desktop release. 2. Fixes the endianness of devices built around the SH3 CPU. Version 1.92b ------------- This is the first release for the Pocket PC and supports Pocket PC 2000 (ARM, MIPS and SH3) and 2002 or later (ARM only). Context help is available in the usual way - while Password Safe is the foreground application, go to the start menu and select "Help". On the whole this release is the same as the desktop version, except for the bug fixes and differences noted below. To compile these sources for the Pocket PC you need: - Embedded Visual C++ 3.0 (eVC++ 3.0) for Pocket PC 2000 or 2002 targets. - Embedded Visual C++ 4.0 (eVC++ 4.0) for Pocket PC 2003 targets. - Pocket PC 2000 SDK (eVC++ 3.0 only) - Pocket PC 2002 SDK (eVC++ 3.0 only) - Pocket PC 2003 SDK (eVC++ 4.0 only) - eVC++ 4.0 Service Pack 2 - Pocket PC 2003 Emulator Images (eVC++ 4.0 only) - Lots and lots of free disk space! All of these are avalailable as free downloads from Microsoft's MSDN site but they're not all easy to find. Obviously if you don't want to target Pocket PC 2003/Windows CE .NET devices you don't need the eVC++ 4.0 components! Installing ---------- I don't have all possible devices to test on - I have the emulator that comes with eVC++ and an ARM based Pocket PC 2002. Other CPUs are untested on real devices and Pocket PC versions other than 2002 have only been tested under the emulator. Therefore it would be good if people would run the debug versions of the MIPS and SH3 programs and report back whether they get a message on launching the application that the endianness is wrong. There's no installer yet - this will be added to a later release. In the meantime to install simply: 1. Copy pws_ce_help.html to \Windows 2. Create the directory \Program Files\Password Safe 3. Copy the debug or release version of the program appropriate to your devices CPU to \Program Files\Password Safe. 4. Create a shortcut to the program in \Windows\Start Menu\Programs 5. If you want Password Safe on your Start menu create a shortcut to it in \Windows\StartMenu Major Bug Fixes --------------- 1. Assumptions that a TCHAR is really a char have been removed. There were several cases where a TCHAR was assumed to be 1 byte long. These have been fixed so that they multiply sizes by sizeof(TCHAR). 2. Calls to CMyString::FindByte() replaced by calls to CMyString::Find() because FindByte doesn't work reliably when CString wraps a unicode string. 3. A few very minor fixes to allow clean compilation with Visual Studio .Net 2003. 4. Password Safe used to decrypt strings directly into the buffer obtained by calling CString::GetBuffer(). Very bad practice. You can get away with it when CString wraps 1-byte character strings. But all you get is garbage when you try it on a system where CString wraps 2-byte character strings. So it now decrypts to a temporary buffer then assigns the plaintext string to the CString so that proper type conversion takes place. Major Differences from the Desktop Version: ------------------------------------------- 1. Popup dialogues (such as the About dialogue) are derived from CPwsPopupDialog (which is in turn derived from CDialog) so that some of the idiosyncrasies of MFC on the Pocket PC can be undone. Developer note: where the base class has been changed, conditional compilation is used to keep CDialog as the base class when targeting desktop versions of Windows. A typedef called "super" (in the manner of java) is declared as a synonym for the actual base class. See ConfirmDeleteDlg.h and ConfirmDeleteDlg.cpp for an example. 2. The user interface has been redone for the Pocket PC's smaller screen size, The dialogues are smaller, some of the text is reworded to make it fit, the toolbar is gone and in line with Pocket PC development guidelines, accelerators are removed. 3. The list control in the main window is derived from CMyListCtrl (derived from CListCtrl) for the popup menu to work. In a future release I may get rid of the annoying double red dots "feature" (I call it a bug myself) of MFC tap-and-hold processing in Pocket PC 2002 (note Pocket PC 2000 doesn't use the red dots and Pocket PC 2003 fixes the bug). 4. Wide string (unicode) support added throughout, including overloaded replacements for strcpy, strlen and strstr (strCopy, strLength and strFind respectively in Util.cpp). 5. Preliminary support for platforms other than Win32 including fixes for portability issues when reading/writing files. 6. File I/O uses fopen, fclose, fread and fwrite (or the unicode equivalent) rather than _open, _close, _read and _write which aren't supported on Pocket PC. 7. Features of desktop versions of Windows that are not implemented in Pocket PC are conditionally compiled out. 8. Usernames and passwords are copied to the clipboard as unicode strings. 9. A wait cursor has been addded for operations that (potentially) take a long time. 10. In line with Pocket PC development guidelines the name of the currently open password database has been removed from the title bar. 11. Enhancements to CMyString to support c-style (i.e. char*) strings on unicode systems. These are needed so that the current file format isn't broken when the underlying operating system is unicode. 12. Encrypting files from the command line has been removed, but MAY be reinstated at a later date. Known Issues ------------ 1. Tap-and-hold on a listview item causes two sets of red dots to appear when running Password Safe under Pocket PC 2002. This is a "feature" of the operating system and I've not yet found a reliable way of stopping it. The feature is not present when running under Pocket PC 2000 or 2003.