Pocket SharpMT 3.2.1

A new version for the application that wasn’t supposed to get a new version! Not a total re-write, but I’ve looked at almost all parts of the application for possible improvements, retiring obsolete functions where I could, and adapting the bits to use the 2.0 version of the .NET Compact Framework.

Resizing should work on all devices, connections should work better and more reliably, and I’ve cleaned up some of the UI that has irked me after looking at it.

Some things to note, after the jump – you should really read them before downloading!

Warning: I don’t have a physical device to test on. I have only one ancient iPaq and it has Pocket PC 2002 on it. Oh – that would bring up the first: this version will not work on Pocket PC 2002 devices. The 2.0 version of the .NET Compact Framework requires Pocket PC 2003 or higher.

Anyway, about my testing time: I had one faithful user with a Treo 700w that tried out the first private release of this. He uninstalled 2.6.2 and installed 3.2.1. After that he couldn’t connect to his blog; I haven’t been able to duplicate this problem under emulation, so I can’t “fix” it! The workaround I suggested worked: uninstall all versions of Pocket SharpMT, delete the HKCU\Software\RandyRants key from the registry and re-install 3.2.1. That got him up and running again. I don’t expect to see this problem in the wild, but I felt obligated to mention it in case other people had the same problem.

On to the good stuff.

.NET Compact Framework version 2.0 – This is a good thing. Included with this release of the Framework were a bunch of things that I had to work around in the first Framework… this includes sizing, registry access, and the DateTimePicker controls. Consequently, this release of Pocket SharpMT is smaller and tighter than the last version!

Better support for newer devices – As part of the Form sizing support, I really took the new device formats to heart… I tested the application the emulator for QVGA and VGA devices in portrait, landscape, and square modes, both Pocket PC 2003 and Windows Mobile 5.0. Since the emulator is running actual device bits in this generation, I’d say that the display on different devices should be optimal.

Network Support – Two things in this area: one is that the Unicode characters than SharpMT currently encodes for the server, Pocket SharpMT does as well. The other is that of proxy support: it now offers the same proxy authentication support that SharpMT does. Again, without a real device on a cellular network…? I’m hopeful though. But I still can’t promise that it will work on all bands/networks. WiFi and LAN should be a given.

To me, this is an official release – at least as official as donation-ware can get. If problems are found, I’ll address them as they come in, but given what I’ve seen from the new Framework, I’m expecting this to spin like a top.

Download Pocket SharpMT 3.2.1: CAB | ZIP

Download .NET Compact Framework version 2.0: PC Install (required for Pocket SharpMT 3.2.1)

For people that have Pocket PC 2002 devices, you can still find Pocket SharpMT 2.6.2 here: CAB | ZIP

30 thoughts on “Pocket SharpMT 3.2.1”

  1. Hi, I’m trying this on my Sprint PPC-6700. Pocket SharpMT faults when I click the refresh button in options. Here’s the dump:

    Pocket SharpMT.exe


    at System.Xml.XmlTextReaderImpl.ParseDocumentContent()

    at System.Xml.XmlTextReaderImpl.Read()

    at System.Xml.XmlLoader.Load()

    at System.Xml.XmlDocument.Load()

    at System.Xml.XmlDocument.LoadXml()

    at Pocket_SharpMT.Dialog_Preferences.refreshClick()

    at Pocket_SharpMT.Dialog_Preferences.btnRefresh_Click()

    at System.Windows.Forms.Control.OnClick()

    at System.Windows.Forms.Button.OnClick()

    at System.Windows.Forms.ButtonBase.WnProc()

    at System.Windows.Forms.Control._InternalWnProc()

    at Microsoft.AGL.Forms.EVL.EnterModalDialog()

    at System.Windows.Forms.Form.ShowDialog()

    at Pocket_SharpMT.Dialog_Main.optionsClicked()

    at Pocket_SharpMT.Dialog_Main.mniOptions_Click()

    at System.Windows.Forms.MenuItem.OnClick()

    at System.Windows.Forms.Menu.ProcessMnuProc()

    at System.Windows.Forms.Form.WnProc()

    at System.Windows.Forms.Control._InternalWnProc()

    at Microsoft.AGL.Forms.EVL.EnterMainLoop()

    at System.Windows.Forms.Application.Run()

    at Pocket_SharpMT.Dialog_Main.Main()

  2. Well, I’m at a loss. I know that it’s OK with the emulator and with the guy I was working with on an actual device… the PPC-6700… that WM5 or 2003SE? I’m reaching here… I mean I can look at the refreshClick() call, but a NotSupportedException throws me: I usually catch them all, so it’s odd.

  3. Hey, works great on my Cingular 8125 (HTC Wizard w/ WM5.0)!!

    A couple suggestions though..

    1. When browsing for a file to be uploaded, add compatability to browse the Storage Card.

    2. Add functionality to be able to upload an image and them embed the image into the post that you are currently making. I could upload an image, but no easy way for me to “add” it to the post besides adding a custom tag and then having to type in the entire image filename, which is kinda a pain..

    Other than that, works like a charm, thanks!! Lemme know if you need any other testing help.

  4. @g0nk: 1) actually that’s a stock common dialog for Open – there should be a “select source” drop down in there for the Storage Card… I’ll look into it and make sure it didn’t get lost on the port.

    2) Hm. I thought that was in there too. I know it’s in the desktop version. I’ll look into that one too.

    Thanks for the feedback! :D

  5. Hey Randy, the Pocket Shartp MT 3.2.1. works great on my iPaq 2215 (thanks!!!) the only problem I have is when I post in my language (Czech). I use wordpress 2. It shows some funky letters instead of some specific letters Czech language has. Do you have any idea how to fix it? I tried to change the charset and that didn’t help. I’m using UTF-8.


  6. Welcome to the wonderful world of XMLRPC.

    I’m sorry to say that there’s nothing I can do about it. Throughout 2.0 I worked with UTF-8 pages. Was able to save them, display them, and reload them through the application. The problem was XML-RPC. Whenever I tried to push the UTF-8 data through to the server, it failed. Citing UTF-8 as the problem. The work around for western languages was to hack up the bits into the escape sequences, but that doesn’t help the rest of the world… which is why it all sucks, but there’s nothing much I can do about it. Sorry about that!

  7. although ‘sharpmt’ is mostly supposed to work with MT, I gave it a try to on WordPress.

    it has successfully got all blog ‘Categories”Updated Links’, but when I try to edit any of downloaded entries it gives up with the following message box:


    server error. requested method metaWeblog.getPostCategories does not exist.


    I would put some trace window output here, but all angle brackets & entities are striped, so it’s almost unreadable.

  8. Ah, OK – no worries in that it’s desktop versus Pocket.

    As to the error, there’s not much I can say to that. I’ve heard that WP works with #MT, but it’s not really supported either way. The only reason it works properly on TypePad is because I switched from MT to TP and had a vested interest in getting it up and running there. :) It honestly sucks that the “standard” API for blogging isn’t standard on every blog engine. Even MT behaves differently across different web server types: Apache sends things differently than IIS, etc. WP is the blog engine that is most like TP/MT but even there it’s not 100%. The best I can do is say that I can try to see what’s up, but I’m not promising a fix – I’d have to make it a full time product to offer support on multiple blog engines…

  9. Just tried installing on a Motorola Q, and get a similar error as the one seen by harl9000. I have .NET 2.0 installed on the device.

    Pocket SharpMT.exe NotSupportedException

    at Microsoft.AGL.Common.MISC.HandleAr()

    at System.Windows.Forms.Control.InitInstance()

    at System.Windows.Forms.Control..ctor()

    at System.Windows.Forms.TabControl..ctor()

    at Pocket_SharpMT.Dialog_Main.InitializeComponent()

    at Pocket_SharpMT.Dialog_Main..ctor()

    at PocketSharpMT.Dialog_Main.Main()

  10. I have to admit it: not a clue. I mean, from the call stack I know that it hasn’t even gotten into code that I’ve written yet: it’s still running through the sections that were generated by the IDE… and I haven’t gotten a Q to play on yet (mostly because I want no part of Verizon) but if I get my hands on one, I’ll try it out.

  11. I do appreciate the interest, but there’s not too much I can do about stuff like this… the whole point of moving to the .NET Framework was so that one build fit all processor types and form factors… if there was something in *my* could I could investigate it, but this isn’t in anything that I wrote… even if I had the device, I don’t think there’s anything much that I could do, expect add to the FAQ that it doesn’t work… sorry for the problems – it usually goes much better than this!

  12. Randy:

    I’ve done a little looking, and one difference seems to be that the Treo 700W runs Windows Mobile Pocket PC Phone Edition. (See here.) The Motorola Q uses Windows Mobile Smartphone edition, which is considerably stripped down. The errors seem to come from the fact that Smartphone edition doesn’t recognize certain kinds of button codes.

    (I’m not a very good programmer, so that’s about all that I could make of it from various discussions. See here.)

    So my guess is that there may be some difference between the two operating systems. That’s an uneducated guess, though.

    Thanks for putting the program together, whatever the case.

  13. Ohhhhhhhhhhhhhhhhhhhhhhhhhhhh.

    Yeah: if the Q is using the Smartphone software there’s no way Pocket SharpMT is going to work on it: it’s geared to run on the Pocket PC shell. And up to now, I’ve been against doing a Smartphone due to the form factor of those types of devices: who the hell wants to use a number keypad for blogging?

    The Q changes things tho… I’ll take a peek over the weekend maybe and see what’s going on in the source: right now there’s one code base that handles regular QVGA/VGA and portrait/landscape displays… if I can somehow plug the Smartphone interface into that, I will, but as you’ve already discovered there are key differences between them.

    Thanks for the reminder on the OS differences, tho – I totally forgot the Q wasn’t a PPC!

  14. Glad that’s straightened out, then. I love the Q, but there is no good blogging software for it. If you do manage to make a smartphone edition, you have no competition at all.

  15. Seriously rocks.

    Updated my O2 XDA Exec with the .NET and can now moblog to WordPress first try without any problems.

    Many thanks

  16. I’ve just tried this with wordpress 2.0.4 and it works great but (you knew there was a but).

    When you upload pictures wordpress has a default upload location and it stores stuff under there (there is also actually a year and month subdirectory option but I’ve turned that off). So when the url is added to the post it doesn’t actually find the picture. Would it be posible to have an option to specify the full prefix for the file name?

  17. Hm. I’m not sure where the problem is, so to speak – meaning I don’t know where the fix would be. Is there a problem with the upload? Or with the URL as it’s inserted into the draft???

    (and just to confirm, this is just for the Pocket version, ya?)

  18. Yes – this is for the pocket version.

    I’ll try and explain..

    When you upload a picture and you have the following settings in SharpMT

    Server Tab : Server : http://www.domain.com

    Images Tab : Upload Image Path : /somepath/more/

    The image file will get uploaded to


    by WordPress (wp-content/uploads is the default upload location)

    However the image tag that gets inserted in the post is http://www.domain.com/somepath/more.file.jpg

    That aside I’ve got a different strange problem… my settings that were working suddenly keep giving me an error when I press the refresh button on the server settings:

    “An error message cannot be displayed because an optional resource assembly containing it cannot be found

    Please verify that your CGI-BIN path is correct!”

    This is with unaltered settings that used to work, could installing anything else have affected it?

  19. forget my last question – it was a WordPress antispam plugin that I’d installed on my server that was blocking access from sharpMT

  20. Ah, for that, not really. You can customize how the tag looks (i.e. HTML vs XHTML) and you could even preface it by a redirect, but there’s no way to inject a piece of URL in the middle of it… you could add the wp-content/uploads in front of the /somepath/more but then it would try to upload it to that location anyway… cool that the other part of it is OK though!

  21. Yeah – the problem is that if you add the wp-content/uploads in front of the /somepath/more the file will be uploaded to


    The only way round I can think of with things as they are at the moment is to remove the WP default upload location – but then that will allow the normal adin area uploads to just go into the site root – messy.

    I was just wondering if an additional option could be provided for a string to add when you’re creating the URL – as it is currently you must concatenate the server address and the upload path – the optional string could go in the middle.

    I know it’s cheeky to ask as this was written for MT not WP.

  22. Oh it’s not cheeky to ask – one of the reasons why the IMG tag is in the defaults is for similar situations like that… the problem is that I don’t know if there’s “clean” way to do that. I mean, you have the host name from the Blog settings. You enter in a custom upload path, so that’s OK too. For MT, everything is relative to that; in TypePad it depends on where you’re storing images. WP is the tricky part because it’s sorta of like saying “in some cases, inject this value into the middle”… that’s sorta beyond the scope of what the IMG tag is trying to do… if I do a future version I’ll consider it, but no promises.

    BTW, there IS a 3.3 version of all three flavors of #MT which may very well be the last versions.

Leave a Reply to halr9000 Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.