SDK, DTK, DRK: WTF?!


Earlier this week we released the Windows Mobile 6.5 Developer Toolkit (DTK). This release has raised a few questions relative to the other Windows Mobile software development tools and resources. I’d like to take a moment to describe what the SDK, DTK, and DRK are, and just as importantly what they are not.


WTF


Figure: Windows Mobile 6.5 Developer Resource Kit


SDK: Software Development Kit


We have not released a new SDK for Windows Mobile 6.5. The Windows Mobile 6 Professional SDK or Windows Mobile 6 Standard SDK are required for Windows Mobile 6.5 application development.



DTK: Developer Toolkit


The Windows Mobile 6.5 Developer Toolkit (DTK) is not an SDK! The DTK contains emulators, gesture APIs, and samples useful for developing Windows Mobile 6.5 applications. You will still need to install Visual Studio and the Windows Mobile 6 SDK prior to running the toolkit installer.


DRK: Developer Resource Kit


The Windows Mobile Developer Resource Kit (DRK) is an offline DVD copy of the most useful and relevant Windows Mobile application development tools and resources. Traditionally the DRK does not contain any exclusive content, in that nearly everything on the DRK is available for download online. This time we are pleased to publish the Windows Mobile 6.5 DRK with several sample chapters of Microsoft Mobile Development Handbook from Microsoft Press (Wigley, Moth, and Foot).


We hand out free copies of the DRK at several conferences and developer events throughout the year. Beginning in July 2009, you may also order the Windows Mobile 6.5 DRK online at this Microsoft Web site. The previously listed Windows Mobile 6 Developer Resource Kit will be replaced.


WTF: Where To Follow?


Follow us on Twitter @wmdev to get the inside scoop and up to date information for development on Windows Mobile!


Lastly, you can find the latest development resources at http://developer.windowsmobile.com.


 


*UPDATE* Documentation has been released for Using Gestures in Windows Mobile 6.5. Thanks for your patience!


 

Comments (44)

  1. Michelle says:

    Great post.  Thanks for the details!

  2. DrewG says:

    word, Keep up the hard work folks

  3. Nuo Yan says:

    This is great! Keep up the good work.

  4. Susan Miner says:

    Windows Mobile 6 SDKs won’t install for Visual Studio 2010 Beta.

  5. MSDNArchive says:

    Susan,

    Check out this post by Steve Hegenderfer which explains a bit more about the Visual Studio 2010 Beta: http://blogs.msdn.com/hegenderfer/archive/2009/05/26/windows-mobile-developer-support-in-vs2010-yes.aspx

    In a nutshell, we will deliver Mobile device tooling for Visual Studio 2010 but we can’t share details at this time.

    Thanks!

  6. Walter Fernandes says:

    I want to order the DRK, but in the msdn page doesn’t Brazil in "your location"!!!

  7. AdamL says:

    I have an idea…

    Why not release a full fledged SDK that doesn’t require visual studio for mobile development?

    Oops, sorry…

    I forgot that Microsoft doesn’t want to have the same level of success of the iPhone and the App Store.

    I say this with a low blow humor.  However, it is very true.  I’ve stopped all of my Windows Mobile development to focus our people on iPhone development.  We did this for two reasons, one of which is relevant to this topic.

    1.  Lower cost to develop

    2.  Single point of distribution (AppStore)

  8. Matha Goram says:

    Why not publish a date for the VS2010 add-in if the horizon is only weeks away? Keeps us salivating and inhibits rumors from going into overdrive…

  9. pieguy2 says:

    I was waiting for 6.5 kit(s) to come out before

    asking this question and now that I have

    downloded/installed/tested WM 6.5 it’s

    time to ask…

    What’s the real story with IPIEHTMLWindow2

    under new version(s) of Windows Mobile starting

    with the first version to use IEMobile 6?

    Has that interface simply ‘disappeared?’

    Very simple test shows the issue…

    I used the ‘PieHelper’ BHO sample that

    comes with the Windows 6.0 SDK.

    I added the following ‘test’ lines to BOTH

    the ‘OnNavigateComplete2’ and ‘OnDocumentComplete2’

    handlers in the WM 6.0 SDK PieHelper Project…

    NOTE: The ‘m_spWebBrowser2’ pointer is the same one that

    is always initialized by PieHelper in the ::SetSite pickup

    and it is always a valid pointer to the current IWebBrowser2

    instance.

    HRESULT res;

    CComPtr<IDispatch> spDispDoc;

    res = m_spWebBrowser2->get_Document( &spDispDoc );

    if ( SUCCEEDED( res ) )

    {

    IPIEHTMLDocument2 *pHTMLDocument2;

    res = spDispDoc->QueryInterface(

    __uuidof( IPIEHTMLDocument2 ), (void**) &pHTMLDocument2 );

    if ( SUCCEEDED( res ) )

    {

    // It works!

    }

    }

    Results are the same regardless of whether

    the test is in the OnNavigateComplete2 or

    OnDocumentComplete2 handler.

    At all times, the first ‘get_Document’ call SUCCEEDS

    for WM 5 all the way up through WM 6.5.

    However… the QI for IPIEHTMLWindow2

    succeeds only for WM 5.0 through WM 6.0 andALWAYS

    returns E_NOINTERFACE starting with WM 6.1.

    Is there a simple answer here?

    It obviously has to do with IEMobile 6.x entering

    the picture but why is it reporting ‘E_NOINTERFACE’

    for the ( legacy ) IPIEHTMLWindow2 interface?

    Did it simply ‘move’ somewhere else?

    If that interface is simply no longer available… then

    what’s the functional alternative for devices with

    IEMobile 6+ installed?

  10. pieguy2 says:

    Whoops…

    My bad in previous post.

    Pretty much everywhere I mentioned

    ‘IPIEHTMLWindow2’ what I MEANT to type was

    ‘IPIEHTMLDocument2’.

    Sorry.

    The CODE SNIPPET is correct and shows

    the real question.

    It is the QI for ‘IPIEHTMLDocument2’ that

    is SUCCEEDING for WM 6.0 but reporting

    ‘E_NOINTERFACE’ starting

    with WM 6.1 and on into WM 6.5

    Question still stands.

    Has the ‘IPIEHTMLDocument2’ interface

    simply ‘disappeared’ starting with the

    first versions of WM that use IEMobile 6+?

    If so… what’s the alternative now?

  11. wazoo says:

    what my business needs to succeed through the recession is a crystal clear path of development to deployment, not 3 (or more) different-but-necessary kits to piece together like Tetris.

    I was hoping for a bit more from Microsoft.

    If you want the same kind of developers that made the iPhone a success story to do the same for Microsoft, then the team needs to seriously consider how this information is getting to developers.

  12. Emken says:

    I am a retired programmer, and like to develop apps for myself and others. I have used VB for years, and like the ease and intuitive power of it. I would like to develop some Mobile apps, and got the Mobile 6 SDK, VSTV etc, a real alphabet soup. I don’t understand why MS wants to burden developers, private and professional, with all this complexity, when the object platform is so limited. Why not a compact VBM emulator, for mobile devices? You seem to be trying to discourage development. I used a WAP emulator 4 years ago which was simple, and free.

  13. Richie from Athens, GA says:

    I would love to start developing software and testing the new windows mobile 6.5.  I have had 4 pda phones and speaking from an average non-development level user, it is frankly rather dificult to understand all the necessary kits/steps.  Streamlining these steps into one free easy to use program would definitely build consumer loyalty and help combat the growing iPhone wave.

    I still feel that windows mobile phones are superior, but the necessity to still use a stylus (human interface) in simply superior in the iPhone.  Also, the overall stability of the operation system when dealing with 3rd party applications is terrible (not to mention with some of it’s own applications).  

    I feel this is simply a result of NOT STREAMLINING THE DEVELOPMENT PROCESS.  

    Through the app store apple has been able to almost 100% successfully view and evaluate each application which has been developed.  Where as windows mobile applications are made mostly on forums such as xda developers and the like.  Now those forums are great but if the people behind those forums had the support from microsoft, well then they would be unstoppable.  With that there would simply be nothing standing in the way of microsoft as far as taking back control of the smartphone market.

    I love windows products, primarily for there universality approach (everyone basically uses the same OS).  But the overall system needs improvement , particularly in the user interface department and STABILITY.  The iPhone has been able to accomplish these things and unless the windows mobile can compete with this, the iPhone will take over the smartphone market along with blackberry.

  14. Philippe Bertrand says:

    I bough an (expensive) Visual Studio 2008 standard edition in order to develop Windows mobile 6 application as an hobbyist. I developped a few application for Symbian (Nokia) a few years ago and I was just not happy with the closing of the Nokia environment. Although Microsoft site announces that the Mobile Sdk will work with Visual studio standard edition 2005 or above, I understand that it is not the case with Visual studio standard 2008. You need the much more expensive professional edition…. I feel that it is not correct as I waste this money (of course there is no "normal" upgrade for the difference in price). Is the situation really as i described it ? Do you plan to change it

  15. Chris says:

    Using the WM6.5 kit, how do we develop third-party control panel applets?  It appears that the new start panel doesn’t display any new cpl files.  And, adding them to the registry under HKLMSecurityStartInfoStartSettings doesn’t seem to have any effect.

  16. Paul says:

    Tried to embed the IE webbrowser control. Still works fine as with the MiniPIE sample implementation. But this does not seem to host the IE Mobile 6, but rather the mobile formatted browser version. Furthermore, Flash Lite 3.1 is no longer supported. I can clearly see this from the user agent difference: Windows Phone 6.5 vs IEMobile

    Is there any reason for this? Are there actually two modes, and the default one enabled is the mobile one and not the full browsing one? If so, is it possible to switch between the two modes?

    Worst still, the webbrowser control does not enable the zoom & pan touch gesture. If this has to be implemented by the client code, could you advise how? Given that the touch gesture API is out anyway (though much lacking the documentation), but I have tried to use TKSetWindowAutoGesture with no luck. It seems the control does not support that somehow. Could you advise? Help is really appreciated here. Thanks.

  17. JORGEBA says:

    The WebBrowser control avaliable in the .NET framework is based on the old pocketIE on 6.5 and can’t be easily swapped with the new one (which is based on the same hosting model as the desktop).

    The new control could be hosted (see http://msdn.microsoft.com/en-us/library/aa908098.aspx) but it is not consider "hostable" out of the box in 6.5, there is also no support for this configuration.  The problems you are going to find are that  touch/d-pad navigation will be broken and the browser will not be able to connect to the network without custom code (your host app has to call ConnectionManager directly to create network connections on behalf of the browser).

    It is possible but hard.  hope this helps

  18. Paul says:

    Thanks. So I take it then there are two versions of browser controls existing on the WinMo 6.5: PIE and IE Mobile 6. I’m not using .NET framework, and am coding in native C++ (which you should be able to infer from my mentions of MiniPIE sample and use of TKSetWindowAutoGesture function anyway). And I used AtlAxWin for hosting the webbrowser control, so I guess that picks up the PIE version.

    Then could you give more hints as to how one could host the IE Mobile 6 control? And if it is possible but hard, will your team take an initiative to make this less harder in future? Either case, dev support in the form of documentation or sample code would be much appreciated, as had been done with the MiniPIE sample.

    After all, the new browser has been included and given that it’s much nicer and powerful, it’s a shame that it’s not been designed to be properly hostable especially given that its desktop counterpart is doing fine with that regards anyway.

  19. Victor says:

    Random question. Is WM 6.5 multilingual aware? For instance, does it support double-byte characters?

  20. JORGEBA says:

    Paul:

    You should look at IESample (I’m pretty sure is part of the CE SDK, %_WINCEROOT%PUBLICIEOAKIESAMPLE ), it is a basic browser built using mshtml as the web browser control.

    I can’t comment on specific plans but we are aware of the need for having a more modern browser control avaliable fore developers.

    Victor:

    Yes, Windows Mobile supports UTF-16 (among others), please look at http://social.msdn.microsoft.com/Forums/en-US/windowsmobiledev/thread/c56566c8-13a8-4ac8-b21a-b8797baf137b/

  21. Paul says:

    Jorge, I now believe what you meant by not "hostable" out of the box is because of the lack of support for the "shdocvw" by the ATL hosting library. I have now determined this when I looked at the ATL hosting code, ie. most _CE_IE are just placeholders. So is that "future plan" is to extend the ATL framework for WinMo to include support for this too?

    Now, in the meantime, if I were to try to code using the IESample approach, ie. implementing all the necessary COM manually, I found the very first issue is the missing of the mshtml.h and exdisp.h files from the WinMo SDK. Does this mean I need to salvage it from the WinCE sdk? If so, could you point me where I can find it? All in all, can you give me more information/pointers on how I can adapt a WinCE sample to the WinMo env? Thanks.

  22. JORGEBA says:

    YOu can donwload the CE 5.0 SDK from here: http://www.microsoft.com/downloads/details.aspx?familyid=FA1A3D66-3F61-4DDC-9510-AE450E2318C3&displaylang=en

    NOTE: Even though IE6 from CE5 and IE6 on Windows Mobile 6.5 is interface compatible I have never try using the version on the CE5 sdk to build an app to host the IE6 browser… have fun :-), and if you suceed please blog about it!

  23. Kane3162 says:

    Not gonna lie here… if it wasnt for no2 and his ROM’s I would not even have a WM Phone… google him, read his comments/suggestions and use them/hire him (with no strings attached so he can actually do something BETTER for WM), I swear if he stopped doing what he does (fixing your s***) I will stop using a WM phone (will not go to an iPhone) and use Android and convince all my business customers to switch over as well (several of them use WM in their company and I have tooled their phones/PDA’s with the no2 tools to make them "business" workable).

    Every time I buy a newer HTC phone I cry more as HTC replaces WM integrated apps with  BETTER ones, because obliviously you guys have stopped caring about anything but the flashy look…

  24. timlayton says:

    I actually think the development process for windows mobile is very simple and straight forward.  I also develop for other platforms (e.g. desktop, web) so the issue of needing visual studio is not an issue for me or almost anyone else that I know of.  The IDE is fantastic and the SDK has been very simple as well.  In my book–it’s all good!

  25. Hi there!

    I work for an ISV. I’m currently developing a C++ application for smart devices (it must support from Win CE to Win Mobile 6) -my app is not a driver-.

    I’m thinking about testing tools for it.

    I found two: TUX and TUX.Net (the managed version).

    What do you recommed for me?

    -Using TUX? (Does TUX work for non driver unmanaged applications?)

    -Using TUX.Net? (Do I need to write managed wrappers?)

    -How can I integrate any of the test harness (TUX or TUX.Net) with Team System? -Unit test & code coverage-

    Thank u so much!

    Javier Andrés Cáceres Alvis

    Blog Personal: http://speechflow.spaces.live.com/

    Blog Intel: http://software.intel.com/en-us/blogs/author/javierandrescaceres/

  26. chai says:

    i think if msft develop a xbox live-like multiplayer service for next version of windows mobile…it’ll be a big hit~

  27. MikeH says:

    Nice!

    But there is no word about Silverlight 2 for Mobile!!

    Why?

  28. Cotulla says:

    Probably this is wrong thread, but I want to ask development team about one problem in WM6.5

    I found a problem with Win API function:

    HWND FindWindowW(LPCWSTR lpClassName, LPCWSTR lpWindowName);

    In systems before WM6.5 (WM5.0 WM6.0 WM6.1) you can call it with lpClassName == NULL and lpWindowName != NULL and it works without problems!

    Example: HWND hWnd = FindWindow(0, L"MS_SIPBUTTON");

    But in WM6.5 this function broken – it will return NULL if lpClassName == NULL and lpWindowName != NULL.

    This make problems with a lot of applications (including my own), because they can’t find windows on new WM6.5.

    I hope that you you will check this problem and probably will fix it.

  29. wm mavian says:

    Where is the documentation for the Gesture API?  The doc file included with the Wm 6.5 DTK has a link to Wm dev center home, but can’t find anything there

  30. wm mavian says:

    Where is the documentation for the Gesture API?  The doc file included with the Wm 6.5 DTK has a link to Wm dev center home, but can’t find anything there

  31. Dennis says:

    I think Microsoft can learn a lot from Apple. When I started to develop for the iPhone, all I had to do was download the iPhone SDK and that was it.

    This whole business of versions, DTK, SDK, Studio is a mess. Why not simply deliver a "Windows Mobile Studio" solution that has all the components for Mobile development. I have spent 3 days trying to ensure the environment and getting downloads to get going.

  32. Vaayoo says:

    WinMo fans and developers,

    Pls chk Vaayoo’s exciting multi-faceted social app that brings for the first time to Windows mobile users: ‘Click n Share’ photo and video uploads to Facebook, direct video upload to YouTube and other cool social networking and sharing features.  

    For more detail visit our facebook page at http://www.facebook.com/pages/Vaayoo/74673639629?ref=s

  33. John Doe says:

    Get an iPhone and iPhone SDK instead.

  34. Aaargh! says:

    So, when is the WM SDK going to be at the same level as the iPhone SDK ?

    Where is Microsofts answer to UIKit, Core Animation, etc ? Developing a good looking app on iPhone is very easy, developing an app that has an ugly Windows 3.11 look & feel is a horrible experience, let alone if you try to make something that looks good, that’s nearly impossible.

    e.g. making a control or whatever semitransparent requires a lot of code, in Cocoa Touch it’s as simple as someControl.alpha=0.5;

    WM Marketplace is never going to be a success it stays this way. There simply won’t be enough developers who will want to bother writing an app for WM.

  35. Someone, anyone? says:

    Can someone at Microsoft please start communicating more about submitting apps to the marketplace?

  36. Andy says:

    When will a new version of the hopper come out? We are trying to test our app for 6.5 for certification, but the hopper that is part of the 6 SDK does not seem to behave the same in the 6.5 emulator. We have tried our app again on 6.1, and hopper does work as expected. It is really hard to get ready for certification if we don’t have the tools, but there again may make it easier to pass.

  37. Mike says:

    WTF WTF WTF.

    Please tell me that we are not using my favorite 3 letter acronym for referring to tweeting…

  38. timlayton says:

    I have enjoyed the process of learning the new gesture api and about widgets.  Keep this good stuff coming and looking forward to windows mobile 7.

  39. Gust says:

    Respect  Peoples and change THIS TITLE !!!

    o.O  !!!

  40. MSDNArchive says:

    I just wanted to give a quick update that we will release gesture documentation very soon. Thanks for your patience!

    Also I hope to clarify that the intention of the article is to show a clear path to developing for Windows Mobile 6.5 devices — not to create more confusion with acronyms. I will state clearly that if you want to develop applications for Windows Mobile 6.5, I recommend that you install Visual Studio, the Windows Mobile 6 SDK, and finally the Windows Mobile 6.5 DTK. That should get you off and running. 🙂

  41. CMC says:

    Where can we find 6.5 specific documentation?  

    My specific issue is how to correctly get an icon in the startmenu grid (or whatever it is called now).  All I can find is stuff on social.microsoft.com (e.g. http://social.msdn.microsoft.com/Forums/en-US/windowsmobiledev/thread/464a8485-79e6-4d04-b2a7-6ad3f8267e18) [Not exactly official documentation].

    What, officially, are we supposed to do in the face of different screen resolutions/DPIs? (will the png always be 45×45?  not likely.)  

    Any differences in handling professional vs Standard?

    How should we construct our cabs so that a good looking "icon" is installed when installing on 6.5, but doesn’t screw something up when installing on 5, 6, or 6.1, or even 6.5 that has been skinned(e.g. HTC-I’m assuming they’ll modify the 6.5 UI just as much as before)

    Without using the png/registry "hack", the start menu just scales up the 32×32 icon.  Badly.  Why on earth didn’t it use the 44×44 icon if it was available?  Why not use the 32-bit icons when available? [Side whine-Not that I care for Symbian, but SVG icons would have fit nicely here…]

    This is all based on the 6.5 emulators.  Do they use the same OS build that was sent to OEMs? (IOW, are there bug fixes that the OEMs have that aren’t in the emulator images?)

  42. MSDNArchive says:

    *UPDATE* Documentation has been released for Using Gestures in Windows Mobile 6.5. Thanks for your patience!

    http://msdn.microsoft.com/en-us/library/ee220920.aspx

  43. eDGARDO PANCHANA says:

    and what do you about silverlight for mobile?

  44. jayborseth says:

    I second the comment above about being dead in the water until Hopper version 2.0.24.7025, (created May 28, 2009) for WM6.5 is available for download.  This doesn’t seem to be available anywhere, yet is a requirement for AppStore testing.

    Older versions of Hopper just seem to do nothing on WM6.5 (at least on a 6.5 emulator).