News Archives 
   
(click month to expand)
  

Recent Technology News Stories

Solentive News
I know that header file is around here somewhere  [click for more...]

Over in the microsoft.public.win32.programmer.international newsgroup, JohnD asked:

Hello all,

I have an interest in calling KbdLayerDescriptor.

Michaels blog here:

http://blogs.msdn.com/michkap/archive/2004/12/22/329657.aspx

reports that the return of KbdLayerDescriptor is defined in "kdb.h".

I've downloaded the "Windows Driver Kit for Windows Vista", but I cannot find kbd.h or anything relevant in there.

Where can I get kbd.h? Is it part of one of the other Microsoft SDKs/DDKs?

Thanks in advance.

/john

If JohnD had asked in the blog's Suggestion Box or as a reply to that post (%WINDIR%\system32\kbd*.dll) I probably would have seen the question sooner!:-)

Anyway, I have had several of the various DDK/WDK packages installed plus being enlisted in various source code projects at Microsoft, so here are three reliable places to find the file:

  • If you are internal to Microsoft and work in a source code project that picks up the NT Publics, it can be found at oak\inc\kbd.h.
  • If you have MSKLC 1.3 or 1.4 installed, it can be found in the MSKLC installation directory, at inc\kbd.h.
  • If you install the Windows Driver Kit, it can be found in the WDK install directory, under inc\api\kbd.h (sample projects using it can be found in the WDK install directory under src\input\layout).

There are other DDK/WDK type installations that also have it, so in all likelihood if you have one installed some casual spelunking through inc directories might be worth a look.

John had a follow-up question a few days later after he found the file (on his own, via the third bullet point above):

Am I correct in assuming that typedef KbdLayerDescriptor returns a struct tagKbdLayer?

This is a great time to look at those samples I mention above -- with the exception of conceptual topics, code is always the best documentation, dontcha think? :-)

I must admit that I am always curious about what people are trying to do when they want to call a keyboard layout DLL directly. It has come up probably about 15 times over the last five years, in all but one case it was not really what was needed....

 

This post brought to you by(U+18a4, a.k.a. MONGOLIAN LETTER MANCHU ALI GALI ZHA - a letter that is not on the Vista keyboard for Mongolian, for hopefully obvious reasons?)

14/11/2007   [Link]
AT&T 3G in Hampton Roads, VA!  [click for more...]

W00t! It's been a good week to have an 8525. Last week, AT&T released WM6 for the phone, and this morning, with no announcement, 3G got turned on. (I'm guessing they will make an announcement after it's stable.) At any rate, I've been playing around with it for the morning, and it's an incredible difference. Web pages come up pretty quick, maps (Google maps & Live Search) are very responsive. It actually usable as a real time platform for always on connectivity (as opposed to just email alerts)

I'm tempted to try an write up some code for browsing my personal inventory to see how well it works.

14/11/2007   [Link]
Multi-binding inside Multi-binding  [click for more...]

You can't.

Well, that was the short version of things. Now comes the long one.

Take the following piece of XAML:

<Label x:Name="color">
    <MultiBinding Converter="{StaticResource luminanceConverter}">
        <Binding Path="AddedLuminance" />
        <MultiBinding Converter="{StaticResource rgbToCmyk}">
            <Binding Path="R" />
            <Binding Path="G" />
            <Binding Path="B" />
        </MultiBinding>
    </MultiBinding>
</Label>

The above fictional piece of code takes a color's RGB (Red/Green/Blue) values, converts it to a CMYK (Cyan/Magenta/Yellow/Black) representation and then adds luminance. This is all done to display a value for the user which the application doesn't need to compute on its own for the sake of logic. It's also useful, because whenever AddedLuminance, R, G or B change, the value is recalculated.

The only problem with the above code is that it doesn't work, since apparently, you can't place a MultiBinding inside a MultiBinding.

I guess I'll have to wait for the next version for that one...

14/11/2007   [Link]
 [click for more...]
With the release of ASP.NET 3.5 and Visual Studio 2008 just around the corner, now is the time to discover the new features that will empower your Web development and make building great Web sites easier than ever.
14/11/2007   [Link]
Big tasks ahead for Telstra  [click for more...]
THE telco is eight weeks ahead of schedule with its information technology transformation known as TR1, with TR2 waiting in the wings.
14/11/2007   [Link]
Custom Control using C# For Virtual Directory in IIS  [click for more...]
This is a Windows based Custom control to Create, Delete Virtual Directory in IIS and we can set all properties like default page, Asp.net version, Authentication Type through it.
14/11/2007   [Link] Abhijit Jana
OT: xbox live marketplace rant  [click for more...]

About a month ago, my 360 died with the Ring of Death, so I took it back to Best Buy using their Product Replacement Plan. I chose to upgrade to a 360 Elite for the bigger hard drive. Get home, transfer some save games off a memory card, load up all my downloaded content, load up the household profile, and it looks like I'm good to go.

But then... I load up Puzzle Quest, and I have to activate it everytime I try to play. It's not a problem, since it still recognizes me as the owner of the product, but it's still awkward. But then, I loaded it up under my son's account, and he can only play it as a trial version. Now, that really sucks, since he was almost done when the console died :(

I looked online, and found this is a common problem. The downloads are tied to the console and the gamer tag. If the console changes, only the gamertag that purchased them is able to continue playing them.

So I called up 1-800-4MY-XBOX, and explained the problem. The rep said he could help, got a list of my games, and spoke with his supervisor. Turns out, that after a 1/2 hour on the phone, they can't help me because it's not the same unit type!

So here I am, Shiny new 360 unit, and nobody in the house can play any of the casual games except me! And given the issues with all the failures, and the potential for the life-cycle of the 360 to go well beyond 5 years it  seems like there should be a better way to handle marketplace downloads and longevity.

Since you can transfer a gamertag through the "Recover My Gamertag" function, and that disables the tag on the previous console, it seems like it would be easy to update the download information to tie to the new console. When the old console connects to Live, just update to change those to trial versions. (I could imagine that someone could use the system offline forever, but they won't be able to connect to live for other games, so it would really end up being a minimal impact) Either that, or send me a disc with all my downloads that I can throw in the play my arcade games!!!

DRM really needs to be resolved if there is any thought of long-term viability of digital downloads. I like the concept, but I also like the thought that I can fall back to physical medium on those games I purchased that way.

(As an ironic aside, I'm not using HDMI to connect the 360, I'm using a VGA cable. The HDMI cable went to the Tivo since that only needs one cable to carry the HD single to the TV, not the two required by the 360)

Maybe someone will come up with a better way to handle this, and let my son play Puzzle Quest without having to repurchase it. And fix the bug where *I* have to log in every time.

Ok, done ranting.

14/11/2007   [Link]
Extensions for Microsoft AJAX Framework  [click for more...]
Provdes cryptographic services including secure encoding and decoding of data, as well as hashing and random number generation, and new methods for JavaScript native objects.
14/11/2007   [Link] Ruben Buniatyan
Google Password Strength API  [click for more...]
ASP.NET Control for the Google Password Strength API
14/11/2007   [Link] Roger Chapman
Silverlight Alien Sokoban  [click for more...]
A fun Silverlight implementation of the game Sokoban. Contrasting Silverlight 1.1 and WPF, while showcasing some new features of C# 3.0, Expression Design, Expression Blend, and Visual Studio 2008.
14/11/2007   [Link] Daniel Vaughan
XGenPlus - A flexible tool to generate typed XML serializers for your .Net applications  [click for more...]
XGenPlus is a flexible tool to generate typed XML serializers for your .Net applications. It provides more flexibility than the sgen.exe tool combining the efficiency offered by Mvp.Xml.Xgen library.
14/11/2007   [Link] Sivakumar G
Consuming the Windows Live Search Webservice using ASP.NET and AJAX 1.0  [click for more...]
This application will bind search results from the Windows Live Search Webservice to a GridView Control and make use of AJAX 1.0 for searching and paging.
14/11/2007   [Link] Daniel Penrod
.NET Framework 3.5 Common Namespaces and Types Poster  [click for more...]
14/11/2007   [Link]
Copyright © 2007 Solentive | Disclaimer | Contact | Home