[Mono-dev] Windows Shell

Miguel de Icaza miguel at ximian.com
Wed Nov 29 13:10:54 EST 2006


Hello,

> Yes, I agree with your assesment.
>  
> As for duplicating the Windows Shell API, it would need to be
> abstracted quite significantly, as it is the single worst API I have
> used, and very much tied to the win32 implementation. 

I would create an abstraction for what you are trying to solve, and have
one implementation call into the Windows space, and another that we do
to map into the Linux world.

This is what we have in mind.

Miguel.

> How does one go about getting the Moma results?
> 
> 
>         My opinion, but what I think we need to achieve, and how to
>         get there is 
>         roughly:
>         
>         - Get the Moma results of P/Invoke calls, sorted by call
>         frequency.
>         - For each one:
>            - Try to figure out why it's being called (what the user is
>         trying to
>         accomplish, which is not always easy or possible)
>            - Determine if there is something already in the managed
>         API that we
>         should be pointing users to.
>            - If not, design a .Net style function that accomplishes
>         what the
>         user is trying to do (which may or may not look like the Win32
>         API call)
>            - *!!* Document on the wiki every API call we examine, and
>         what the 
>         suggested replacement is.
>         
>         Another route is to simply duplicate the exact Win32 API
>         syntax and try
>         to make it perform the same on *nix.  This route would
>         probably be
>         easier for porters, at the expense of new users who would
>         prefer to 
>         accomplish the task without learning Win32 API.  (IMO, a
>         large, large
>         percentage of .Net developers have no desire to touch Win32,
>         think VB.)
>         
>         Most likely, it would be a mix of both.  SendMessage would be
>         a pretty 
>         straight call, whereas GetIconFromFile could be made easier to
>         use.
>         Place all the results in a .dll called Mono.Compatibility or
>         Mono.Platform or something.  Position it as both a library to
>         help
>         people porting to Mono, as well as an abstraction layer to
>         make the 
>         Win32 easier for .Net people.
>         
>         Jon
> 
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list



More information about the Mono-devel-list mailing list