cURL cURL > Mailing List > Monthly Index > Single Mail

curl-tracker Archives

[curl:feature-requests] #82 Adding Windows Phone (Metro) support

From: Steve Holme <captain-caveman_at_users.sf.net>
Date: Tue, 11 Nov 2014 18:19:53 +0000

I've been meaning to take a look at building curl for Windows Phone 8 for a while now so this is a welcomed feature from my point of view. Especially as I've not built anything for my Lumia 820 in the two years of owning it and only touched Windows Phone 7 briefly a few years ago (never releasing the app I wrote).

> Well, one is out of support, the other is having just half a year of ongoing support

Support for an OS from Microsoft and what we support are two completely different things unfortunately (unless we want to revise this??). You'll note from our download page that we offer Windows 2000/XP specific compilations as well as Generic Windows builds.

>From a code point of view we have code in libcurl that detects NT 4.0 and Windows 95 at runtime (for example when loading the Security DLL).

> #if (WINVER < 0x0600)

I have personally added code into libcurl that has the following around it:

     #if !defined(_WIN32_WINNT) || !defined(_WIN32_WINNT_WIN2K) || \
         (_WIN32_WINNT < _WIN32_WINNT_WIN2K)

I would recommend using that or even:

      #if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0600)

...either of which are in keeping with code elsewhere in libcurl.

I will take a look at the patch in more detail later this evening but that's my thoughts for now ;-)

---
** [feature-requests:#82] Adding Windows Phone (Metro) support**
**Status:** open
**Created:** Tue Nov 11, 2014 10:03 AM UTC by Stefan Neis
**Last Updated:** Tue Nov 11, 2014 12:43 PM UTC
**Owner:** Daniel Stenberg
I've been testing curl on Windows Phone a bit, using the Metro app style (i.e. non-Silverlight). Of course, that required some changes to curl code.
A first step was to replace some (more precisely: three) old APIs that are not supported for Windows Phone by more "modern", extended APIs (patch attached). Unless you need to support very old compilers or windows versions (which would required some #ifdefs), that should be an uncontroversial change.
A second, more controversial step was to add a "thread emulation" layer and include it from connect.c and select.c via a suitable #ifdef. IIRC, I took that from http://blogs.msdn.com/b/shawnhar/archive/2012/03/12/createthread-for-windows-8-metro.aspx. This "translates" the win32 thread API used by cURL to the new Metro-style thread pool API. While that was fine for my own use, I doubt it's a generally acceptable method for porting libraries, especially, if each library adds its own copy of that code. So I don't really know what to suggest here. 
---
Sent from sourceforge.net because curl-tracker@cool.haxx.se is subscribed to https://sourceforge.net/p/curl/feature-requests/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/curl/admin/feature-requests/options.  Or, if this is a mailing list, you can unsubscribe from the mailing list.
Received on 2014-11-11

These mail archives are generated by hypermail.