API / SDK for HTC devices - Windows Mobile Development and Hacking General

I am a newbşe developer, trying to figure out what I can do for my HTC Hermes.
I am using Visual Studio 2005 with WM6 SDK for developing apps.
I wonder if there is any API / SDK for HTC devices for controlling device specific features.
i.e. controlling the power and other lights, buttons etc.

MSDN is your friend:
http://msdn2.microsoft.com/en-gb/library/bb158483.aspx

thanks; that's also helpful.
But, I was looking for device specific APIs.

audiofish said:
MSDN is your friend:
http://msdn2.microsoft.com/en-gb/library/bb158483.aspx
Click to expand...
Click to collapse
IDA is your best friend
All device-specific API is in OEMExtDLL.dll, and there is lots of undocummented IOCTLs on different drivers. OEMExtDLL.dll is just a wrapper around these IOCTLs

mamaich said:
IDA is your best friend
All device-specific API is in OEMExtDLL.dll, and there is lots of undocummented IOCTLs on different drivers. OEMExtDLL.dll is just a wrapper around these IOCTLs
Click to expand...
Click to collapse
and where is that ?

Related

.net 2005

http://lab.msdn.microsoft.com/vs2005/welcome/default.aspx
have anybody tried messing with the beta's to make pocketpc applications ?
Rudegar said:
http://lab.msdn.microsoft.com/vs2005/welcome/default.aspx
have anybody tried messing with the beta's to make pocketpc applications ?
Click to expand...
Click to collapse
I'm a MSDN subscriber and haven't received it yet. As soon as i get it will try to publish it somewhere in the net...
Cheers
well the link i gave will let you download the beta even if you dont subscriber to msdn
it does require a passport though
havent dl'd it myself though
infolink
Rudegar said:
well the link i gave will let you download the beta even if you dont subscriber to msdn
it does require a passport though
havent dl'd it myself though
Click to expand...
Click to collapse
I'm on my i-mate now & can't find any download links on that page. It is not even published at http://msdn.microsoft.com/downloads/recent.aspx download center.
Can you post a link to a pre-DL passport auth page?
http://lab.msdn.microsoft.com/express/visualc/
https://login.passport.net/ppsecure/uisecure.srf?id=42814
me
I'm using Visual Web Developer 2005 beta.
Completely new to web development.
HTML tags were completely beyond me as was data driving asp stuff.
BUT......
VWD is a dream to use.
I now have an asp site that lets XDA equiped engineers interface with our back office systems. The database integration is simple (tho there are a few bugs) and controls autosize for the target device.
Give it a go
well the only stuff relevant for me is c++ and maybe a bit of c# so i dont end up like some creepy dinosaur like those people who started coding Cobol back in the 70's and are still at it!
suppose one have to keep a bit up with the trend
VS 2005
Hi, there:
I'm using VS2005beta1, and I think its cool except a stupid bug on device application development. I attached some screen shots here. hope these information helpful.
Unlike evc+sdk developer tool set, vs2005 includes all stuff needed to build device applications, and it supports the latest emulator which running native ARM code on an emulated arm920 device, it's much faster than the legacy emulator, the legacy i486 emulator is still suported, check the attached platforms.jpg for supported platforms, notice wince 5.0 device is in the list. :lol:
now we can program in vb.net, c#, or c/c++. the attached screen shots show these different types of projects. convenient enough hur.
well, a big problem arised when develop in c/c++, i did not try vb.net and c# coz I don't like'em. when you create a new project, two platform configurations are created, one for device and the other for emulator. I mentioned the new emulator before, remember? its cpu is an arm920, check the screen shot. this emulator is used when deploy and debug for the project's emulator configuration. but unfortunately, under the emulator configuration, the compile and linker will generate x86 executable which cannot be run on the target emulator. what is worse is that you cannot change to use legacy i486 emulator, you can not even connect to the legacy emulator, the problem may related to the virtual machine network service driver installed by the emulator installation file. I'm still checking it. until this problem is solved can we finally debug on emulator, otherwise we had the only choice to debug on the device, btw I can debug on device with no problem, it can even attach to a running process on the device
at the predicatable future, vs2005 will certainly supercede evc+sdk to become the unified development platform.
why the screen shots appear in a reverse order of my attaching? I think it should be a list instead of a stack. :roll:
Well, I think I´ll have a look at it soon. Could you check if there are any project types for deployment? Means a "setup projekt" for devices?
yeah, I forgot this one, check the shot, it support device cab project.

.NET Platform Builder

...anyone knows where to get it?
thanx
buzz
Take a look here: http://msdn.microsoft.com/mobility/
dcs,
Please correct me if I'm wrong. With .net you have a very thin client on the phone that relys on internet connectivity to a server to get most of its functionality, correct???
Because of this it didn't seem that useful for the phone becuase the app would be useless without a GPRS connection.
Thanks,
Ok, this might have been a direct question to dcs but I'll take a shot at it anyway..
When .NET framework is installed on the device, it does not require any connection to the internet what so ever..
Just like Java..
Many java applets are used on/in web pages, but you could allso run applets directly on the device..
With java, this requires a "Virtual Machine"..
What's great with .NET is that a person can very easily integrate the application with services hosted on the internet..
It's very flexible in this manner..
10 out of 7???? Multiple personalities!
10/7
This is the logicall flaw that many people actually don't see..
paulmc said:
dcs,
Please correct me if I'm wrong. With .net you have a very thin client on the phone that relys on internet connectivity to a server to get most of its functionality, correct???
Because of this it didn't seem that useful for the phone becuase the app would be useless without a GPRS connection.
Thanks,
Click to expand...
Click to collapse
.NET in its entirety embraces many different deployment models.
The .NET Framework essential embraces the PC world, and the .NET Compact Framework is a subset of the .NET Framework designed specifically for mobile devices.
Clients on the PPC that run within the .NET Compact Framework are 'rich' clients, in that they run code on the device and have device resources available to them. They are not restricted to being Internet applications and can perform any tasks on the PPC such as Today screen applications, self contained data applications, etc.
The only client on the PPC when using an ASP.NET application is the web browser, with all the processing taking place on the server, and all data being held on the server.
Some facts about .NET (imho&offtopic)
.NET & .NETCF
When MS started with its ".NET compaign" they were saying that .NET is a platform-independent framework... It means the following: once program is developed it will run on any platform (unix, winxp, wince, os/2 and etc...) But what we see??? We see the new .NET framework - .Net Compact Framework! Another framework and another need for developers to re-write their programs for this target platform. What are the gains for the end-users? No gains, only losses. Many software developers were cought on platform-independence declared by M$ and have developed software for .NET thinking that their software is cross-platform. But in fact, when NETCF was declared everyone had realized "cross-platformness" and had understood that many end-users will not see .NET programs running at .NETCF
.NETCF
.NET Compact is heavily dependent on core functions written on C++. Without these functions you can't do any Today Screen applications and other such basic development. Thus, we are required to refer to C++ functions for our programming and the concept of "manageable" code is pissed out. As for end-users, they continue to suffer from unmanageable code errors such as buffer over/underruns and other memory tricks even though the software that they bought is written on .NETCF which in its turn shall be the sign of security of application
ASP.NET & PocketIE
ASP.NET uses extended document object model (DOM) for its client-side functionality. But this model is not well-implemented on Pocket version of IE. Thus, end-users on PPC will have some problems with full-scale asp.net web-applications that require pre-posting processing on client-side when dealing with scarce resources (slow inet connection and etc)
Finally, dNET & .NETCF are really SLOW as any interpretation language indeed and are not well distributed among other platforms (Palm, Unix and even Win98/ME!)
Developers, are you still believe in .NET perspectives? ;-)))
I was not extolling .NET - merely answering a question.
Most of your comments are based on developer frustrations - which I share. For the end-user, what I have stated is true.
.NET
dcs said:
I was not extolling .NET - merely answering a question.
Click to expand...
Click to collapse
Don't take this on your part, this is for info only
buzz_lightyear said:
...anyone knows where to get it?
Click to expand...
Click to collapse
PB 4.20 and 5.0 trial versions can be freely downloaded from Microsoft (about 1-2Gb each). But you cannot use it to create a ROM for our device, because it does not contain necessary BSP. The only useful thing - is WinCE partial source code coming with it.
@mamaich
THANX mamaich! That was exactly what I meant, however I still cannot find the download link...
My intention was to rebuild some of the SE ROM apps for WM2003 not SE.
THANX
buzz
Try here: http://www.microsoft.com/downloads/...c1-623b-481b-83b8-031129cf1594&DisplayLang=en
and here: http://msdn.microsoft.com/embedded/downloads/ce/
buzz_lightyear said:
My intention was to rebuild some of the SE ROM apps for WM2003 not SE.
Click to expand...
Click to collapse
PB 4.2 does not have PocketPC 2003 SE BSPs. It contains only several native WinCE 4.2 applications. They can be recompiled, but would look ugly (for example look at this - http://mamaich.kasone.com/ppc/mspdfview.rar). And Platform Builder 5.0 does not have BSPs that produce ARM binaries. All configurations I've checked produced only THUMB code.

Beginner's pointers?

Hi chaps,
I've just got myself an O2 XDA Orbit - great device, and now I'm looking for developing for it - just simple things at first, like a Blackjack game, or a simple Today feature with the sun and moon times on it; this sort of thing.
I've got Visual Studio .NET 2003, but I see that in order to program the latest devices, you need VS 2005 (?). So, I've downloaded Embedded Visual Studio C++ v4 with all the SDK's and I'm hoping to develop for an earlier version of Windows Mobile, and hope that it works.
So while I've got all that, I'm now stuck as to where to start! Can anyone point me to a good book, or something online which will help me through a simple CE application? How you do get the Today screen working, for example? I realise that this might be asking a lot, but a couple of pointers would be great - if you could!
Many thanks,
MrP.
I'm just starting out myself with windows mobile programming. You can find a lot of info from msdn. Here is an example Hello app.
http://msdn2.microsoft.com/en-us/library/ms912017.aspx
You can find a lot of good stuff at the code project site also.
http://www.codeproject.com/ce/
eVC has wizards that will get you going. One thing I found out about using eVC is that you won't be able to debug your programs on a WM5/6 device since the SDK's are not compatible with them. It can be a bit of a challenge to fix bugs without a debugger. I can't get the debugger to work with the emulator either for some reason.
A question for other eVC developers out there. Is it possible to use the emulator to debug programs or do you all have an old PPC2003 device that you use to do your debugging? Or have you all moved on to VS2005?
I've bought visual studio 2005 standard and it is great - it fully supports WM5/6 (with sdk) and runtime debugging - for .exe it works well but I have problems with .dll - I can't debug dll files - does anyone know how to make it?
Pleas look up threads started by vijay555.
He wrote a comprehensive article on the tools and possibilities to begin developing for these devices.
Just as a quick side note:
There is no need what so ever to pay M$ money for VS 2005 if you want to develop in C / C++.
Apps written in eVC++ 4 will work perfectly with WM 5 and 6 and if you need any missing API (not many of those) you have 2 choices:
1) Manually unpack the SDK and link to it.
2) Use implicit linking (that LoadLibrary and GetProcAdress).
levenum said:
Pleas look up threads started by vijay555.
He wrote a comprehensive article on the tools and possibilities to begin developing for these devices.
Just as a quick side note:
There is no need what so ever to pay M$ money for VS 2005 if you want to develop in C / C++.
Apps written in eVC++ 4 will work perfectly with WM 5 and 6 and if you need any missing API (not many of those) you have 2 choices:
1) Manually unpack the SDK and link to it.
2) Use implicit linking (that LoadLibrary and GetProcAdress).
Click to expand...
Click to collapse
Sorry about the delay in replying...
Many thanks for the pointers.. Just a matter of starting now!

Compiler available for windows Mobile App development

Dear Hackers and others
Suggestions on the Compilers / IDEs / Environment that are suggested for application to be build making them compatablw with maximum devices.
Example:
http://en.wikipedia.org/wiki/Mobile_development
Please add other you would use not listed on above page.
you have no other choice than MS Visual Studio + their SDK if you want to target windows mobile. Also.. it must be VS Professional edition because only this one has smart device development support.
I'm using MS Visual Studio 2008 Professional.
You do not need VisualStudio. See here: http://www.codeproject.com/KB/mobile/WiMoSansVS.aspx
craftyb said:
You do not need VisualStudio. See here: http://www.codeproject.com/KB/mobile/WiMoSansVS.aspx
Click to expand...
Click to collapse
Yeah! If you want write whole code with by hands!
(There is no way any visual developing without visualstudio.)

noob question: How to start programming?

Hi all,
Finally I've my HD2 and I must say, I'm very happy with it!
I'm no noob in informatics, I program in VB and VBA and I'm DBA in Oracle and SQL Server. But to be honest, I don't now how to start.
I tried searching the forum here, but couldn't find a thread: how to start programming on a WMO-device.
Thanks already for the info!
Koen
PS for example I would like to program this:
keyboard layout French (AZERTY)
T9 language Dutch
Koen D said:
how to start programming on a WMO-device.
Click to expand...
Click to collapse
You start programming for WM the same way you do it for Win32. Just download mobile SDK from Microsoft and you're good to go. You use the same IDE, Visual Studio, for mobile programming, and coding experience is the same, in addition to the fact that a lot of code using WinAPI will just work. There are differences of course with regard to memory management or power management etc., but those are either documented on msdn or are discussed at length everywhere on the web.
VB and .Net won't be good for your purpose though, you'd need native C++ code for things like rewriting a T9 engine I think.
Hey hey!
You can find many interesting postings and topics here:
http://forum.xda-developers.com/forumdisplay.php?f=522
http://forum.xda-developers.com/forumdisplay.php?f=260
There are much more. Please look for the "stiky" posts. There are often very usefull informations. Sure, the moderators open some stikys "just-for-fun"... ... but many topics are realy interesting.
Some external sites can help you, too:
http://developer.windowsphone.com/Default.aspx (of course)
and
http://www.smartphonedn.com/
you can became a part of the msdn (winmo special) here:
http://msdn.microsoft.com/en-us/windowsmobile/default.aspx
When you became a good dev. You should look for 3rd party stuff like:
http://www.resco.net/developer/default.aspx
For the beginning it should be enough.
regards
You can also program in mobile java, which will make your app portable to more devices.
http://java.sun.com/javame/index.jsp
Do you want to be a ROM chef, or programmer?
Or both ?
To just program for the Windows Mobile OS, you can
grab a (free) version of Microsoft Visual Studio 2010/2008
and download the WIndows Mobile development resource kit
from them.
Then you can blast away in C#, C or .NET
If you just want to cook ROM's then look at the kitchen thread.
Look at that thread anyway
Try Visual Studio, VB.NET and the Windows Mobile SDK there it is s
Hi mates, want to ask which is the best programming language for WM? C, C++, C#, VB.Net or something else. I did use C# a lot and can do little thing with SQL Compact. But, it seems lot of the current applications are not require .Net Framework installed on WM. Are they using C++?
Also, is there anything need to be considered for WM Web Programming (such as JavaScript, CSS support)?
siamchen said:
Hi mates, want to ask which is the best programming language for WM? C, C++, C#, VB.Net or something else. I did use C# a lot and can do little thing with SQL Compact. But, it seems lot of the current applications are not require .Net Framework installed on WM. Are they using C++?
Also, is there anything need to be considered for WM Web Programming (such as JavaScript, CSS support)?
Click to expand...
Click to collapse
yep. most WM apps use C++, but even the C# apps will run as most of the ROMs contain the .NET fw by default
I have a question as well, are there any free-for-freeware frameworks for touch-friendly applications? Is there a Sense SDK?
bayowar said:
I have a question as well, are there any free-for-freeware frameworks for touch-friendly applications? Is there a Sense SDK?
Click to expand...
Click to collapse
Microsoft has an SDK for 6.5's gesture support. I've not got around to using it yet though, so can't comment on it's quality or breadth of support.
Is there something I cant build using C only in this phones?
I mean can I build a complete rom, applications and such using only C?
thats the only lang I know so...
mr_Ray said:
Microsoft has an SDK for 6.5's gesture support. I've not got around to using it yet though, so can't comment on it's quality or breadth of support.
Click to expand...
Click to collapse
I've seen that, what about buttons, sliders, tabs, flickable lists and all this stuff though. I've never developed for a mobile platform and I'd imagine starting from scratch with all UI elements steepens the learning curve quite a bit.
siamchen said:
Hi mates, want to ask which is the best programming language for WM? C, C++, C#, VB.Net or something else. I did use C# a lot and can do little thing with SQL Compact. But, it seems lot of the current applications are not require .Net Framework installed on WM. Are they using C++?
Click to expand...
Click to collapse
There are pros and cons to using managed code (C#/VB), and the same holds true about native code (C++). The former is much easier for high-level tasks, but you get less control and it may get a bit tricky when you need to access WinAPI not included in .Net CF (although there are usually ways to do it via Platform Invoke). .Net applications start slower, which may be an issue for certain tasks. Native code is (should be) faster, but a bit more complex and you don't have things like automatic garbage collection and so on. Sometimes you need a couple of lines of code in C# instead of two dozen in C++. Sometimes not. On the other hand, writing something like a graphics-heavy game in C# would be a strange endeavor. Some things are outright impossible like writing a system service, AFAIK. All in all, the pros and cons are described at length everywhere, and it's up to you to decide.
bayowar said:
I have a question as well, are there any free-for-freeware frameworks for touch-friendly applications? Is there a Sense SDK?
Click to expand...
Click to collapse
In the Development and Hacking section you'll find a C# GUI framework (it's called Manila UI Framework or something like that) made by a fellow XDAer.
bayowar said:
I've seen that, what about buttons, sliders, tabs, flickable lists and all this stuff though. I've never developed for a mobile platform and I'd imagine starting from scratch with all UI elements steepens the learning curve quite a bit.
Click to expand...
Click to collapse
If you want non-standard UI elements it can get tricky. For standard UI it's a no-brainer. There are some third-party libraries available. In addition to the C# framework I mentioned earlier, there's Qt (a cross-platform UI framework used by Opera for all their desktop (Linux, Win and Mac) and mobile (WM and Symbian) and embedded platforms including TV set-top boxes) incarnations, Airplay SDK that's a cross-platform framework for Android, WM and iPhone, some others I can't recall right away. They may or may not be free however.
Thanks for the reply, good to know about Qt. I'm vaguely familiar with that, had now idea it found it's way to Windows Mobile.
The Manila framework is called Manila Interface SDK, at least that's the only match I found.
bayowar said:
I've seen that, what about buttons, sliders, tabs, flickable lists and all this stuff though. I've never developed for a mobile platform and I'd imagine starting from scratch with all UI elements steepens the learning curve quite a bit.
Click to expand...
Click to collapse
Actually it is not the UI but the SDK that has a steep learning curve. Besides the usual loops and if then else.. you need to know exactly which library does what and there is the confusion as there are a couple of them doing similiar things eg Messaging API. At least that is what I encountered when I first started and I agree that C++ has a huge advantage over C# or VB.net as it can interact directly with the hardware api instead going over in a big circle and sometimes, some functions can't even be achieved using vb.net!
Just install vs.net and catch up on OO by diving into vb.net.
You'll be fine coding in either C# or VB.NET, the BCL for Ce is leaner than that for full blown windows but still very usable. After installing vs2008 don't forget to update the default install to wm6.5 sdk.
siamchen said:
Hi mates, want to ask which is the best programming language for WM? C, C++, C#, VB.Net or something else. I did use C# a lot and can do little thing with SQL Compact. But, it seems lot of the current applications are not require .Net Framework installed on WM. Are they using C++?
Also, is there anything need to be considered for WM Web Programming (such as JavaScript, CSS support)?
Click to expand...
Click to collapse
Hi mate,
I reckon c++ so u dont need to redisttibute the framework and your app will run fast, but if u want to write apps with db access net framework is the easy way, I'm in Sydney and I do c++ so PM if u need some help,
cheers,
Hlov
BTW is there some good app for programming in my HD2? taking my work on the go? something like visual studio mobile version?

Categories

Resources