DUser.dll - How do we use it

by admin 17. February 2005 13:06

Doug pointed out this post to me yesterday. One of the comments caught my attention - it mentioned the Windows Direct User? Engine dll (duser.dll) which seems to be used by explorer to implement some windowless controls. Having recently played around with themed painting and discovering that uxtheme.dll (the documented source of themed painting) doesn't provide properly themed expando controls (the task lists in explorer) I decided to have a look into duser.dll.

Unfortunately while the exports list looks interesting, there is no documentation anywhere for this library. I plan on checking my Microsoft contacts to see if there's any way of getting at least a header file, but if anybody is listening and can help out then contact me ASAP.


by Admin 20. January 2005 06:31

The RikWareTimeSpanPicker is complete. Basically it looks like the standard DateTimePicker when it's in time format except it allows the hour section to go past 24 hours. This allows easier editing of short TimeSpans.

The whole thing is built on the UpDownBase class supplied with .NET. On top of that I had to re-implement the partial selection style that the DateTimePicker provides (ie. where you can select just the hour section and move it up and down with the buttons). Unfortunately, using the UpDownBase means no visual styles - I'm working on fixing that.

EDIT - 30 April 2008: The TimeSpanPicker control has now been released publically under a BSD license. You can find out more here - http://www.rikware.com/page/TimeSpanPicker.aspx

WinForms TimeSpan editing

by admin 16. January 2005 01:36

So... this blog is worth watching isn't it. Anyway, the short version is I haven't posted in a month, but I have managed to visit Melbourne for the first time in over 20 years. Report from Victoria is: Hedge mazes are fun.

On the off chance that somebody out there is still listening, I'm looking for a winforms control to edit timespans. I'm thinking an up-down style control with a time format but which allows the hour section to go past 24 hours. Having found nothing in my brief search, I'm about to go make one of my own.

Also been checking out O/R mappers - settled on LLBLGen Pro which looks pretty good at this stage. If anybody has comments on O/R mappers then I'd love to hear them...

WinForms Painting

by admin 28. November 2004 23:41

Just caught site of some good info on painting in WinForms on jfo's blog. In particular the posts off his old blog at http://www.martnet.com/~jfosler/articles/WindowsFormsPainting.htm and http://www.martnet.com/~jfosler/articles/UsingDispose.htm.

Otherwise... I'm trying to find some time to update RikWik so I can update this site and improve some things. There's a few bugs which I'm putting off fixing until I build an entirely new version of RikWik with a lot of stuff cleaned up. There is lots of activity on RikWik at QUT but unfortunately our versions have forked and I can't just use all the great work Tim is doing. Incidently, that QUT link includes downloads for full source of a slightly older version of RikWik which you can play with yourself. Like most stuff I'm involved in, it's released under a BSD style license so go for it! We'd love feedback or contributions. Unfortunately documentation is still lacking, but hopefully one day soon...

CredentialsDialog Released

by admin 7. October 2004 00:38

I've finally cleaned up the CredentialsDialog and prepared it for release to the big bad world. Basically it's a wrapper around the CredUIPromptForCredentials windows call which gives you the nice login dialog. Of course this dialog also allows users to save their credentials without any extra effort on your part. Additionally I've added the ability to extend the dialog with extra winforms controls. Currently I provide one extension (shown below) which includes a "create new user" link. You can write extra ones as you wish.

CredentialsDialog with CreateUserExtensionPanel

Full source is provided under a BSD style license.

Parameterised SQL Queries in Yukon

by admin 28. July 2004 07:20

I've just started playing with SQL Express and I'm pleasantly surprised to find that the new sqlcmd utility has the ability to use parameterised queries. Minor thing but very useful!

UPDATE: Now I just need to find out how to test whether a parameter has been supplied or not...

WSE Client Activated Objects

by admin 22. July 2004 17:59

Joseph Cooney gave a presentation on WSE the other night at the local user group. The talk was great, Joseph did well and I hadn't looked into WSE myself. In fact it was so good that it gave me the wish to go play with WSE (that's how you rate a tech talk isn't it? How much it generates an urge to waste time looking into technology you probably don't need to.)

Anyway, one thing it brought up (and the question Joseph refers to in his blog) is whether WSE (and the upcoming Indigo) have any equivalent to Remoting's Client Activated Objects. This is particularly interesting to me since my PhD relies on CAOs to distribute work on a P2P network network using the (not so) friendly Remoting infrastructure.

Now I haven't looked into the WS-* specs much, but I tend to find if I choose a random word and prepend WS- to it I generally find a valid specification. I was wondering whether something like WS-Conversation would fill in for CAOs. Basically we need something that will maintain some state (sorry Mr Greg "Haskell" Neverov) through a series of messages. Now's the time for somebody to jump in and tell me that WS-Conversation exists (or at least exists under a different name) and would fit the bill here.

PS: I'm thinking of starting a thing where I have to include a link to a Jazz CD in every blog post. I think it's the web equivalent of subliminal messages.

Comega and my inability to process data

by admin 8. June 2004 01:58

While wasting away time reading http://blogs.msdn.com/ I found Mike Warren's post on Comega (http://blogs.msdn.com/mattwar/archive/2004/06/07/150603.aspx) Since I'm kinda interested in the whole Polyphonic C# stuff with regards to my PhD I checked it out and wondered why I hadn't caught the renaming.

Then a double blow as I discover the third link in Google for Comega was made a month ago by the guy who sits all of 10 metres from me (http://dcooney.com/archive/2004/04/15/569.aspx) Guess that proves I don't actually take in anything I read...

Extending the CredUI Interface

by admin 19. May 2004 11:01

A couple of months ago I wanted to extend the CredUIPromptForCredentials dialog box to add an "Add new user" link to it. Well, my previous attempt failed but after stumbling across the MSDN Mag articles on extending a messagebox using hooks the solution was trivial. (http://msdn.microsoft.com/msdnmag/issues/02/10/CuttingEdge/default.aspx and http://msdn.microsoft.com/msdnmag/issues/02/11/CuttingEdge/default.aspx)

The link is a standard windows forms LinkLabel hosted in a WinForms panel, so basically any WinForms control could be added (though I'm unsure of the implications of hosting WinForms in a non-WinForms window - it seems to be working).

I'll post the code up soon. Leave some comments chasing me up if I forget.

Attributes Can Provide Code

by admin 30. April 2004 09:41

OK, the first step of Rikxtensible C# has been done. Ever wanted to print "Hello World" via an attribute? This fragment now compiles, and after running through Rikxtensible C# allows the PrivateImportAttribute to provide the code for TestMethod.

class TestClass
[PrivateImport(), MethodImpl(MethodImplOptions.ForwardRef)]
static extern void TestMethod();

static void Main(string[] args)

Obviously, this is only a proof of concept at the moment but soon we'll have compile time code injection for C#.

About Us

RikWare is a software development company based in Brisbane, Australia. Led by director, Richard Mason, RikWare focusses on solving challenging business problems promptly and effectively.

RikWare is also the owner of Aussie Bushwalking, a free, wiki-like collaboration site for bushwalkers and the creator of RikMigrations, a migration framework for .NET.

Aussie Bushwalking

Want to discover some new bushwalking ideas? Share a few of your own? Aussie Bushwalking is like Wikipedia... but for bushwalkers. Head on over. Anybody can see the walks and it's free to sign up and share your own.



RikMigrations is a database migration library for .NET based on the migrations facility provided by Ruby on Rails. It allows simple upgrading and downgrading of databases using .NET code (such as VB or C#) either from the command line or built into your application. Unlike many other migration frameworks, RikMigrations is a stand-alone library which does not rely on a large surrounding framework.