[CODE] Blockclock - Free Code Giveaway - A Metro Style Alarm Clock for WM6+ - Windows Mobile Software Development

A lot of people I spoke to whilst leaning programming didn't want to help with the Visual Basic side of things and started moaning about me not using C# - but that was my choice to make. So I make this post with similar minded people in mind - maybe there is someone else out there that doesn't want to learn C# to code apps?!?
A while back I started learning about Windows Mobile development but I left it a bit late in the OS's lifecycle and sadly lost my motivation for producing apps for it.
Now that I have left my Windows Mobile development behind I am willing to contribute my, slightly messy but, working code to anyone that might find a use for it.
I am willing to donate my code to the community in the hope someone will finish it off - if they can decypher my workings - or make use of it in their own projects.
It's an Alarm Clock in the Metro UI style (see attached screenshots) which wakes the device at the set time and sounds an alarm and is written in VB and is for Windows Mobile 6 and above. Most of the functionality is already in place.
It requires the Smart Device Framework libraries to be installed on the PC used to code it.
Working Features:
One working alarm which wakes the device when required
Snooze function
Customisable colours - working selector screen with 46 colours to choose (you can even use a custom hex colour if the XML settings file is manually edited)
Selection of different date formats
Rotation support for WVGA devices works...sort of but could probably be tweaked.
Things left to finish:
Add additional alarm(s)
Allow naming of alarms
Put dialogue in place to select a sound for the alarm(s)
Put an 'if -> then' statement in place in the alarm sounding procedure to vibrate the device if vibration is enabled
Graphics are minimal to reduce on memory usage but I think it looks quite good...even if I do say so myself (Please see the screenshots attached)
The program was never finished due to changing my main OS on my phone from Windows Mobile to WP7 and Android and I don't think I'll be returning to Windows Mobile 6.5 development.
The following imports are required:
Imports System.IO
Imports System.Threading
Imports System.Media
Imports OpenNETCF
Imports OpenNETCF.WindowsCE
Imports OpenNETCF.AppSettings
...and the following references in the project references:
OpenNETCF.AppSettings
OptnNETCF.WindowsCE
The app creates an XML file for the settings which is stored in the program folder and in its current state it works for 1 alarm with one alarm tone ('alarm.wav' in the resources folder).
Any questions...feel free to ask. There is one menu template which is configured in various procs to create the menus for alarms and preferences so it can look more complicated than it actually is in the code.

Glad to see some people may have found this useful! Keep me updated with any developments, it'd be interesting to see if this goes anywhere....I ask for no credit.

Hi thank you for the source code. I prefer C# syntax wise but they share the same runtime environment and get compiled into the same MSIL language so in theory they are the same. Just some things are done differently. Cheers again.

sb.oddworld said:
Hi thank you for the source code. I prefer C# syntax wise but they share the same runtime environment and get compiled into the same MSIL language so in theory they are the same. Just some things are done differently. Cheers again.
Click to expand...
Click to collapse
No problem at all. Some of the form layouts can be a little confusing so if you need a hand just yell. Glad that it might be of use to someone.

Thanks welki1979 being a non C programmer I fully appreciate how hard it is to find suitable code to get examples from. Even if it turns out to be totally useless it is still a very nice gesture.

Ok got it up and running (didn't need the Smart Device Framework listed above as I already had Microsoft .NET Compact Frameworkwork 3.5 installed).
First impressions... It's really cool (especially the random item close), haven't had much chance to go through the code yet as it threw up an exception when I first ran it that needed to be sorted out first.
What I was hoping to see was the application being triggered from one of the menus items but instead it just fires up on load.
I was hoping to learn how to code it so it could be fired off the start menu icons, but I can't seem to work out how those applications are triggered.
Not sure what value I can add to the program, but given enough time to learn a bit more about mobile coding I might be able to add something.

Related

can i be of any help?

i reckon a majority of programs/applications here are developed with technologies like c++/java. however, as a 6+ years developers in .NET, i'm wondering if anyone might want to find ppl talking about .NET stuff and developing some stuff with .NET framework?
dunno if this is the right place to say this. sorry if it's bothering.
I could do with a bit of a hand with my first ever vb.NET app if you have a spare minute....
I managed to 'lay my hands on' a copy of VS2008 and have installed the SDK's from M$ and have been messing about with it for about 2 months now with some success.
I've managed to program a simple alarm clock app which uses a SDF database for the alarm functions which works well (but still needs more work before I release it).
The main problem I have right now is that I cannot get the phone to wakeup from a standby state when the alarm is supposed to sound (as all programs are suspended when the device goes into standby).
I found this article on MSDN about the 'CeRunAppAtTime' function and have placed it in my code with a calculation for the milliseconds needed (until wakeup occurs) The milliseconds-until-wakeup are calculated using the hours and minutes between the current time and the set alarm time, converted to Integers using the built in time functions of VB.
The problem is that this does not seem to wake the device from standby when it's supposed to.
I've scoured the web for any info on this but have been stuck at this stage for about 3 weeks now, messing with the code so much I've lost track of what I've tried.
Is there any alternative to this function call or am I stuck trying to work it out?
I would post that section of my code but it's on my other PC which I can't get to right now....sorry.
I think you'll find the answers you're looking for here:
http://www.koushikdutta.com/2008/07/cerunappattime-cesetusernotificationex.html
A while back I found a c# compiler that worked ON THE DEVICE -- it was totally cool to compile and mess around with c# on the phone.
That compiler only supported the compact framework 1.0, and the developer seemingly disappeared off the face of the earth without releasing his source.
It would be cool if someone knowledgeable soul could make a version that supports CF 3.5.
Understand that there was no IDE here, you simply loaded your c# source into it, told it to compile, and you got an EXE.
godefroi said:
I think you'll find the answers you're looking for here:
http://www.koushikdutta.com/2008/07/cerunappattime-cesetusernotificationex.html
Click to expand...
Click to collapse
Thanks for the link but I'm not quite sure that this gives me what I'm after.
I don't want to have to schedule a system notification to wake the device as other devs on other sites have reported issues with the dialogue and not being able to assign a sound to it other than the default one for notifications.
CeRunAppAtTime would do the job but I just can't get it to work.
Anyone got any working VB code using this API?
...problem finally solved and the Alarm clock is available for download here:
http://forum.xda-developers.com/showthread.php?p=5551369#post5551369

[APP] Resident Mort - Scary Good, not Scary Evil

*Anyone get the reference? Haha*
Resident Mort
The Scripter's Companion​
Current News / Status:
Resident Mort is currently Under Development
Resident Mort is planned to be a background EXE that will extend the functionality of MortScript available to developers through the usage of the "PostMessage" function.
Resident Mort is planned to extend functionality by adding extra, possibly more complex, functions or even adding in the ability for more complex GUIs.
Features (Green = Implemented, Blue = In Testing, Orange = Planned, Red = Failed):
GetProcessList - Gets a list of Running Programs
GetRecentApps - Gets a list of Recent Apps (10)
CreateScript - Creates a MortScript with the provided info
MakeFile - Makes a file of any kind with the provided info
MakeFolder - Makes a folder at the specified location
RegToEvent - Registers a File to an event​
UnRegFromEvent - Unregisters a File from an event
IsIdEventRegistered - Checks to see if a File is registered to an event.
DispImg - Displays an Image to the screen [and gets where the user Presses]
MakeForm - The Initial call for setting up an 'advanced GUI' form
FormAddObject -A Call that will add one of the predefined objects to the form being created
DeployForm - The Final call for setting up an 'advanced GUI' form, displays it to the user
This application is being made for MortScripters, to possibly make some projects easier. Since I don't use MortScript so much any more, I do rely on you the developers who use MortScript, to tell me what you want in the program.
Since I have a good deal of Functions there, I will commence work on a primary release
Saved For Future Use - Features and Screenshots
like the idea! advanced guis would be very useful
so this is a compiler? I am not sure what this is about
-sorry
No, this is a Resident App, an EXE that is always running in the background. It will have certain functions in it which can be accessed by MortScripters.
All the functions can be called with PostMessage ( I will provide documentation on how to do so, when I make a first release ). Then the results will either be written in the REGISTRY, written to a FILE, or copied to the CLIPBOARD (depending on how the scripter wants to handle the task).
Does this clarify it a bit?
Thanks for sharing!
A small update:
I am using this 'decent' planning utility, to help me keep track of my growing projects. According to this utility, the program is close to 30% complete. Then again, this is just a 'decent' utility haha. I would say, in my estimation (since some Code is "Copy + Paste"), I am close to 60% to 75% done.
A small change in my plans:
While I originally had the intentions of making this program as simple as a PostMessage in MortScript, I found out the following two Limitations:
1) MortScript's PostMessage/SendMessage only support(s) sending Numbers in the wParam and lParam parameters...very disheartening.
2) Due to #1, I made an assistant EXE, which would be run instead of calling PostMessage [this way I could do it Natively in my own control], but it is MUCH harder to transfer data between two applications that I would have thought! Due to Virtual Stacks and Memory Allocation 'rules', I couldn't EASILY do this.
So Here is my change:
In order to use Resident Mort, scripters will have to do about 3 or 4 commands to run. The only real commands that need to be used are PostMessage and RegWriteString (Did I get those right?).
In any case, my Resident Mort will read the Registry for corresponding wParam and lParam values and use those [in the future I will attempt Clipboard integration, to avoid Registry Interfacing].
When I release this program to the public, I will try to include a MortScript file that shows how to use all the functions. I don't remember much of MortScript [unfortunately], but I was thinking it could be helpful to make a "Library" of MortScript functions so a script will only have to call that function. But that is if some kind dev. would like to help out later on
Anyways, Thats that for this update. Expect a result in the coming week.
That sounds interesting for adv. gui functions.
Cyclonezephyrxz7 said:
1) MortScript's PostMessage/SendMessage only support(s) sending Numbers in the wParam and lParam parameters...very disheartening.
Click to expand...
Click to collapse
That's not MortScript's fault, it is design of whole Windows CE kernel, more here
I'd go with background EXE, that would listen to messages WM_USER+somenumber, maybe even region (for different actions, so you'd have both lParam and wParam free for another parameters). If you need help with this part, drop me PM on MSN, I had to study this a bit in the PinchToZoom project myself.
@OndraSter : Yeah, I know that Windows CE has limitations, however it is not impossible. Such an ability could be implemented in a code-update to MortScript. I did my reseach (if you look at #2, I mention that I found it much harder to transfer data between exe's that I had hoped) and found that you can transfer data via SendMessage (the Synchronous method) using a TRANSFERDATASTRUCT and WM_COPYDATA. If MortScripts interpreter could identify a SendMessage with a String value in either wParam or lParam, then it would create such a structure and transfer it, the receiving app would HAVE to take care of deleting the data though, or you have mis-used RAM.
As for how it is going to work now, I did not consider using WM_USER + a value, mainly because my program won't be using other Messages, and will only act if the correct wParam/lParam are provided (preventing accidental execution if the System decides to post a message with the same ID). I have it mostly covered, and I am closing in on finishing (currently with Reg data retrieval only, no Clipboard yet). I have completed 3 of the 7 Proposed Functions (MakeFile, MakeFolder, CreateScript) and I would have finished RegToEvents, but I got sorta lazy hehe. DispImg shouldn't take me more than a few minutes when I get to it, and once I get the API calls for Processes and figure out how to read the MRU reg-entry, I will have the last 3 complete!
As for Clipboard data retrieval, unless I am using the entirely wrong API calls, MortScript has an interesting way of using the Clipboard...I tried copying simple strings like "hello world" to the clipboard using MortScript, then trying to retrieve them in my Resident Mort, but the clipboard always comes up empty... Any ideas anyone?
Thats that for now I am about ready to release....any other functions you want implemented?
As for how it is going to work now, I did not consider using WM_USER + a value, mainly because my program won't be using other Messages, and will only act if the correct wParam/lParam are provided (preventing accidental execution if the System decides to post a message with the same ID).
Click to expand...
Click to collapse
http://msdn.microsoft.com/en-us/library/ms644947(v=VS.85).aspx
Good idea, the only downside being that it will generate the Message Numbers each time it is run... It is not assured that the Post / Send Message MsgIDs will remain constant.
Thanks for the link however
Cyclone,
Sorry about taking so long to post here...
How about, when the BT is on, this reports what is "out there" based on what the BT stack is telling you.
That is, it should read the surrounding area, then report that is saw my BT dongle. In the car, it should report that it saw my BT GPS unit.
Then, I can use that information to change my profile. That is, when it sees the BT dongle, regular phone calls. When it sees the BT GPS unit, run speaker mode, or connect to the GPS unit for phone calls.
Thanks!
--Ironhead
P.S. it would need to support the Touch Pro 2, Rhodium (my understanding is that it is Widcomm BT stack)
I"ll see what I can manage. I am really 'grid-locked' in my work on a couple of projects already So a release of this may have to wait a while....Sorry
I wish I had caught you a little sooner...
AutohotkeyCE may be a better base to work from than Mortscript...
http://www.autohotkey.net/~Micha/AutohotkeyCE/html/index.htm
In fact... AHKCE should be able to cater to all of your needs without the separate resident app
Yeah, I have seen that before. This project is really just a little challenge for myself to expand upon MortScript [because I know it is widely used].
Thank you for the link/suggestion however
I've been playing with Mortscripts for a while, I'm really thinking I can do everything I want, right from there...
EXCEPT:
Actually getting the information from the BT stack. I just need to see if there are any registered BT devices around my phone (so I can tell if I am in my car, at home, at work, etc.).
--Ironhead
Bumpity bump!
Hehe...Yeah, sorry for the lack of work on this. Check out FFP_LockScreen. I am working on a new release. I have very little time now, and I can't manage more than just one or two projects at a time. Once I release FFP_LS 3.0, I can devote some time MAYBE to this project. It all depends on how quickly the XDA-Marketplace idea takes off.
Sorry =\
I you can add a tool to make an GUI... it s must be soo cool...

[DEV] [REQ] C++, rewrite existing code

First I would like to thank the whole forum (with few exceptions that I'd like to not mention here) for the past 2,5 years, which have been very educating for me regarding Windows Mobile as a system. During that whole time I have searched for the perfect simple-to-use, lightweight app for storing and retrieving a grocery list, yet unfortunately I have had to come to the conclusion that it does not exist to this date. There are some existing apps but these are either not simple to use or do not accomplish the simple task at all, or they are too heavy (requiring additionally the .NET framework to be installed for example, etc.).
The idea for the simple software is that one has a changeable groups and items of groceries, from which they can select the already saved ones needed at that shopping day (e.g. during a discussion with girlfriend), and later when in shop they can just check the ones they have already put into basket. I would like to see the person who will argue that it does not easily beat archaic mode of storing information, a.k.a. paper and pen.
I have found an app which, with some relatively small amount of effort can be rewritten to accomplish that task, this software is iContact AE. As far as I understand, there is judicially no problem using the source code from iContact AE as long as following the license restrictions (correct me please if I am wrong). Why AE? Just a selection based on the fact that AE has the most appealing interface and most settings. Of course, this could be a point of discussion, but so far it seems like the best choice.
CAB - http://icontactae.codeplex.com/releases/view/28951
Source - http://icontactae.codeplex.com/SourceControl/list/changesets
I created a possible, chronological tasklist in order to get from iContact AE to the shopping app, whatever it will be called (name suggestions also welcome in due time). Also, I already have a pretty clear vision about
Discuss the usability and feasibility of the selected software / it's source code and it's alternatives (as far as I remember there was the original iContact and some other derivate version).
[*]Create, discuss and review static prototypes of the interface (basically screenshots of each view).
[*]List the requirements to be implemented (or removed).
[*]Code in / remove code according the list from previous task.
[*]Create skin and graphics.
[*]Clean up rest of code, remove unnecessary parts of it (to make it more light).
[*]Test and review changes.
I can either take lead, perform or participate actively in the tasks that are listed green. I only need a competent C++ coder who can help and thinks this is a great idea.
The changes needed to the existing source code do not seem to be much at first glance, but of course as I cannot code in C++, I could be wrong. I just looked at the parts of code where to change the tabs and queries to storage files.
So there, got it off my chest. Any C++ gurus missing a simple, convenient grocery app?
OK, I will put this in another way. I will personally contribute $50 (via PayPal or if EU country, via transfer) to the coder - provided that the end result is according to the requirements, which we will agree forehand. If anyone wants to join in with contribution, You are more than welcome.
aiiro said:
OK, I will put this in another way. I will personally contribute $50 (via PayPal or if EU country, via transfer) to the coder - provided that the end result is according to the requirements, which we will agree forehand. If anyone wants to join in with contribution, You are more than welcome.
Click to expand...
Click to collapse
If I had money I to would offer some.
It's no wunder WinMo is falling behind no one wants to create apps even when offered a straight cash deal.
Amen to that. I was actually reading this and took a good hour of researching to see just how hard it might be and how time-consuming it might be. I would have loved to take this on...but alas, It would split me way too much. I am already working on my FFP_LS Pro 2.5 Improvements (Major Major improvements...I am practically re-writing the app), I am starting work on a game I plan to release (Its a rather popular game I have yet to find for WIndows Mobile), and I already volunteered to work on the Boggle Clone for WinMo ... so I am already pretty split as it is. heh...if I find free time, and nobody has taken this on, I will probably come back and make this my next project
Sorry though...I do hope some developer comes around to assist!
Thanks for Your support. I thought that I don't need to subscribe to my own threads in order to get a notification if a new post is made, but I was wrong. I certainly didn't get one for Your post. So, sorry for the late reply. I will subscribe to my own thread now

My First App, Need Serious Help :/

Hey guys, like the title says, I'm attempting to create an app, but with little success at this point.
What I want to do, didn't sound all that complicated in my head. I want to make an episode guide for a TV show I like. Nothing too fancy, but I do want it to look WP7-authentic.
First off, I don't know or really understanding coding in the slightest. I was hoping to be able to design most of the app through the on-screen WP7 display, which it seems I can do a lot on.
From what I've gathered, here's what I'd like to do:
Use the "Pivots" as the different story arcs or "seasons"
Within each pivot, Episode # and Title
But I'd also like to go one further and have each episode be clickable, which would take the user to a page containing info about the respective episode. Synopsis, International Titles, Airdate, etc.
It's a big project, I just need a little help getting it going.
Thanks!
dbG33K
what you're describing can be done one of two ways.
1. just display images after images
2. input text into the program
from what im gathering, it should be fairly easy for you to do as this is the sort of beginner stuff in most windows phone 7 programming books. id suggest you look into programming because even the slightest pivots and transitions require code.
now if you were on android or webos, thats different. they have full on graphics based programming thats a simple matter of drag and drop and choose function.
Download Expression Blend. You can do pretty much everything without having to write any code. It includes a "Pivot" template which has a pivot all ready for you, then you just add PivotItems using your mouse. Then you can use the Sample Data feature to mock up how your episode data will look.
The only thing you would have to write code for would be to pull the episode information from a datasource. Bind it to your controls and Expression will have the rest done for you.
http://www.microsoft.com/expression/windowsphone/
Sample Data:
http://expression.microsoft.com/en-us/ee426896.aspx
First thing you'll need before you even open Visual Studio or Blend is a data feed.
An rss feed is ideal, And I'm sure theres alot of them out there for TV listings. Without that, theres little you can do (other than screen scraping websites, but people don't look too kindly on that)
If you can find me a Url for the RSS feed you want to use, I'll be more than willing to help you out
xanderkaiber said:
First thing you'll need before you even open Visual Studio or Blend is a data feed.
An rss feed is ideal, And I'm sure theres alot of them out there for TV listings. Without that, theres little you can do (other than screen scraping websites, but people don't look too kindly on that)
If you can find me a Url for the RSS feed you want to use, I'll be more than willing to help you out
Click to expand...
Click to collapse
What he said
I'd be willing to help you out as well. I'm in the process of writing a feed reader to help me make the move WP7 from WPF/Silverlight. The idea I have for the UI is similar to yours and the feed reader (at least in the basic form) will be open source so I've no problem sharing my code...
I appreciate your willingness to help me out, but it's actually a series that has been over for quite a while.
Hey guys, I've gotten much further on my app and have become a little more well-acquainted with coding in the form of using Expression Blend 4. That said, I do have a few questions:
1. After making a few pages, I decided to make a sort of Welcome page for my app. How do I tell it to show that page first instead of "MainPage.xaml"?
2. On that welcome page, I would like to make a button that pulls up the user's E-mail and have it have my e-mail as the recipient.
Thanks a bunch!
This is in the WMAppManifest.xml file within the Properties folder.
for the email look into the email compose task
barryallott said:
This is in the WMAppManifest.xml file within the Properties folder.
for the email look into the email compose task
Click to expand...
Click to collapse
That doesn't really help me too much...
What am I supposed to do in the WMAppManifest.xml?
And where do I find the email compose task, and how do I implement it into the app?
EDIT: Nevermind, I figured out both of those questions. A new question, though: How do I take screen shots of the app? I need at least one to submit it to the marketplace, but I don't know how :/
dbG33K said:
That doesn't really help me too much...
What am I supposed to do in the WMAppManifest.xml?
And where do I find the email compose task, and how do I implement it into the app?
EDIT: Nevermind, I figured out both of those questions. A new question, though: How do I take screen shots of the app? I need at least one to submit it to the marketplace, but I don't know how :/
Click to expand...
Click to collapse
Download this:
http://www.innovativetechguy.com/?p=13
Make sure your emulator is set to 100% size and uncheck the "Show Device" checkbox in the tool. That will give you the necessary 480x800 sized .png
There's a fair lot you can do using the designer panel, but you will definitely need C# code for what happens 'behind the curtains'. Things like pulling the episodes from the internet and such.
I definitely recommend these tutorials:
Windows Phone 7 Development for Absolute Beginners.
It builds up slowly, but definitely gives you the foundation you need to put together basic applications.
Hey guys I found this thread and after reading it I feel I have a lot in common with dbG33K's tasks & questions. I feel I have a lot to offer WP7 apps as I learn more! I started out in January learning and studying as an absolute beginner (even did the 5 day course online). After a lot of studying, I felt confident enough to write my first BIG app.
I'm pretty good at the xaml part and getting real familiar with c# as I go along. Also, I think I have all the pieces I need, just need help putting it all together. I'm using an API for the data source (i have all the dlls and resources in place even all the c# methods for the API).
I have the UI all put together, now working on the c#. I'm just unsure on the binding part. I know my listboxes and other controls should be binded to a method in c#, but what calls that method? When the page loads that listbox, textblock, etc? Also, what kind of coding is generally used inside the {} of the methods that pulls info from the datasource?
As I have learned a lot aver the past couple of months, I find that I've learned it from examples I've found online, but I'm drawing a blank on this one. Any help would be great!
Thanks!
Do any of you can tellme how can I save text from the text box??
Sent from my LG-C900 using XDA Windows Phone 7 App

[DFT] z..::H.O.W...T.O...N.A.T.I.V.E::..z [PREVIEW]

..::H.O.W...T.O...N.A.T.I.V.E::..
Hello,
today I had decided to start this thread about native development for WP7.
At the current moment I don't upload/attach any working stuffs to this message. It will happen a bit later, after new DFT ROMs release. This is because it's very difficult to run them for now.
Let's start from current achieved results:
1) It's possible to run any EXE files (after "FullUnlock")
2) Those EXE files can do any operations in the system (after "FullUnlock")
3) It's possible to show some GUI from this applications. But GUI has legacy Windows CE style, it's impossible to create Metro-style applications for now.
How can it be used by community?
We can develop a lot of homebrew applications: like porting emulators, old native applications, video players and etc.
It can be possible to port famous TCPMP player for example and get ultimate playback on Windows Phone 7!
Is it possible to run old Windows Mobile 6.5 applications without modifications?
No, it's not possible. A lot of different APIs are missing for those applications.
Is it hard to modify old Windows Mobile 6.5 applications?
Well, it's almost same like porting to pure Windows CE, but a lot of Windows CE stuffs are "damaged" inside Windows Phone. They just doesn't work right, because nobody never used/tested them before
Photos of sample "WP7 Native test"
Information for developers you can find in the next messages.
So I will release demo WP7 native application, when we fix issues with FullUnlock.
Demo will be as binary EXE file. And as VS2008 project, which can be good start point for other developers.
Now this thread dedicated for discussion, share ideas and thoughts.
DFT, Cotulla
Information about "FullUnlock"
Information about "FullUnlock"
DevUnlock actually allows only to deploy XAP files from external sources.
It doesn't give more privileges.
So we (DFT) developed "FullUnlock". FullUnlock is implemented as replacing some system files by wrappers, which allows any kind of access (disable access checking at all)
We replace LVMOD.DLL which used to check files and data (checksums, certificates and etc) and POLICYENGINE.DLL which implements internal objects access checking.
All written before means that FullUnlock at the current moment only possible by flashing custom ROM to device. In future maybe we can find good ways to do it without flashing, but for now I don't see any ideas how to do it without flashing.
Maybe we can replace DLLs inside \Windows\ directory (put a shadow copy), but I am not sure if it will work really. It's stuffs for future experiments.
It can be possible to do something near by editing policy values, but it need big research to find right way. As it still won't disable file checking, maybe we can add own certificate to right store and then sign files with them.
The last DFT 7720 MANGO ROMs contains FullUnlock, but it doesn't work as expected there few issues. as well some users got issues with debugging on those ROMs and etc. We will continue work under it
So I will release demo WP7 native application, when we fix issues with FullUnlock.
Demo will be as binary EXE file. And as VS2008 project, which can be good start point for other developers.
Now this thread dedicated for discussion, share ideas and thoughts.
For developers
For developers
(users do not read! danger for brain!)
First of all I want to talk about abilities of native code.
Most applications built in inside WP7 are native. But they don't use usual Dialog UI style, they are using some kind of Silvelight scripts. This kind of UI is called "UIX".
Main idea of UIX that DLL files have UIX resources inside which describe whole UI.
Something similar is used inside CE 7.0 Slivelight - there some xml compiler which make binary data and put them as resources inside DLL. I don't know how to decode this binary data.
Seems Zune desktop application also using this framework.
So UIX used some kind of scripts for UI part and callbacks for all actions.
If we decode this UIX format, we will able to change/modify UI as we want, like it was before with regular resources inside DLL. But UIX must be much more powerful.
We can't use UIX for native application because we don't know how to use it, how to make proper binary data and etc. It's hard to reverse.
But native application can have some GUI with Windows CE style (you can see examples on the photos above)
Another issue: If you call API function "CreateWindowW" you won't see anything on the screen. It seems because shell handle all output, so window doesn't visible.
After some searching I found inside some test ROM nice DLL called "WindowTreeUpdater.dll". After looking inside and decoding functions parameters, it's working!
Basic idea: you create window and call function from this DLL and Window appear on the screen. There seems some kind of proxy engine to output legacy windows on top of shell output.
Nice, it's working...
So we can use usual windows for UI inside native application.
There present standard controls, but they work rather laggy (hey, and looks too).
Basic controls like PushButton, Static, CheckBox, Radiobutton, Icon are working.
About extended controls: (Progress bar, list view, and etc)
they come from Commctrl.dll usually, it was present inside Initial/NODO releases, ut it was removed inside MANGO. I was able to run NODO Commctrl.dll under MANGO after some modifications. But all this controls are shown on screen, but they don't do anything on input. So you can see toolbar, but can't press any button.
CommDlg.dll is missing and never was inside WP7.
There present AYGSHELL.DLL, but most functions are broken. For example, I was not able to create menu bar.
So, a lot of functions are broken, like MessageBox not working.
But we still can create own custom controls and use them for developing.
For example porting TCPMP means that we will need reimplement UI fully - because toolbar doesn't work. slider also won't. Maybe get and reuse some source from ReactOS or NT40 CommCtrl
reserved1reserved1
reserved2reserved2
reserved3reserved3
This is some crazy ****! I like it
for...all...devices!? If possible...damn
I just came...
Holly smoke !!!!!!!!!!!!!!!
Way to go guys....BRAVO... This is a major breakthrough for wp7 dev
Once again well done DFTeam
You guys are beasts...please keep it up
for...all...devices!? If possible...damn
I just came...
Click to expand...
Click to collapse
For now it's only for HTC devices with flashing custom ROM
The UIX/UIB scripts are a real pain.. I tried going through them a while back to change the annoying notification system (10 seconds? Really, Microsoft?) and figured it would all boil down to the usual XML-style script that WM6.5 and other MS products use, but the format is newer and there doesn't seem to be an easy way to decompile them.
From what I do know, however, is that it's more of an encoding than a compilation, and can be decoded if we can figure out what all the different headers mean... but that's a serious reverse engineering project.
Keep it up.is it possible to add Samsung device into support list?
Great work! Are there any multitasking restrictions for these apps? presumably because they are not Silverlight they will not be present in the task switcher & the app will be in charge of when the process terminates?
Looking forward to doing some nice low-level operations - hopefully this will open a whole new world for WP7 dev
Sent from my 7 Pro T7576 using Board Express
That's great,,,Thanks
Cotulla said:
For now it's only for HTC devices with flashing custom ROM
Click to expand...
Click to collapse
Hopefully this will change when you receive the Samsung Focus and try custom ROMs.
Blade0rz said:
Great work! Are there any multitasking restrictions for these apps? presumably because they are not Silverlight they will not be present in the task switcher & the app will be in charge of when the process terminates?
Looking forward to doing some nice low-level operations - hopefully this will open a whole new world for WP7 dev
Sent from my 7 Pro T7576 using Board Express
Click to expand...
Click to collapse
I would suspect that they won't be killed unless there's an Out of Memory issue (you can see the whitelists for that in the registry), because these processes are not like the silverlight/xna apps that are launched in Taskman.exe. Whether they show up in multitask lists, idk, but they probably won't be killed in the traditional way..
but that's a serious reverse engineering project.
Click to expand...
Click to collapse
yes...
maybe it's precompiled XAML scripts, like inside Managed applications?
Great work! Are there any multitasking restrictions for these apps? presumably because they are not Silverlight they will not be present in the task switcher & the app will be in charge of when the process terminates?
Click to expand...
Click to collapse
I would suspect that they won't be killed unless there's an Out of Memory issue (you can see the whitelists for that in the registry), because these processes are not like the silverlight/xna apps that are launched in Taskman.exe. Whether they show up in multitask lists, idk, but they probably won't be killed in the traditional way..
Click to expand...
Click to collapse
Plain EXE can run without restrictions, but I guess it will be killed at OOM condition still. EXE with window seems all a bit more complex. When I press back button it usually disappear after few seconds. I think window got WM_CLOSE or something at that moment. It should be researched more in the future.
Furthermore, I forgot to say: Interesting thing, before MANGO WP7 supports native XAP files too!
There was few files nativeinstaller* which implements native installation. There references inside for setup.dll and _setup.xml like in old CAB files.
But it was removed from MANGO seems
Cotulla said:
For now it's only for HTC devices with flashing custom ROM
Click to expand...
Click to collapse
Would we be able to install an old application like fpsece for windows mobile? One of the biggest things I miss about windows mobile! I get paid today so I will be making a donation for your hard work! I'm currently using your custom rom on my HD7! Thanks again, and keep up the good work!
支持DFT論壇!支持xda-developers!至於你信不信,反正我是信了!

Categories

Resources