Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

Comments (misc)
 
.
Summary
A place to leave general comments about the site.

Leave your comments here! -- Adam Nathan

Very cool site. Somebody needs to write game theory analysis of the developer community.

chrisbbehrens.blogspot.com

This is such a great idea -- thanks Adam

..BradA (http://blogs.msdn.microsoft.com)

Echo Brad. This is an awesome idea! Thanks Adam. I have blogged it. -- Sam Gentile (http://samgentile.com/blog/)

Great idea, thanks for creating the site. However, it does have rendering problems on Mozilla (Firefox 0.8 on Win XP to be exact). The directory tree (advapi32, gdi32 etc.) is misplaced (overlaps the "Directory" label) and I can't get them to expand.

There is also IE (6.0.2800.1106.xpsp2) bug: clicking "Edit This Page" brings up error message "A runtime error has occurred... Line: 15 Error: 'ButtonBar' is undefined". Harmless but annoying.

Krzysztof Kowalczyk (http://blog.kowalczyk.info)

The fading effect is awesome, the whole experience is extremely 'organic'. This is really the future of documentation.

This is so cool! And work with Wiki has never been more enjoyable.

Great idea, thanks for setting it up!

One question: The APIs here appear to be machanically created from some other source - from things like "System.Windows.Forms.NativeMethods"? The functions are present, but not the structures and data types used in the params. Any plans to do a mechanical dump of the structures as well? The real magic of marshalling is getting the param types set up correctly, which for structures can be quite a pain.

Things like RegisterWindowClass and GetClassInfo using the WNDCLASS structure in different ways requires creating separate structures with different field types in order to satisfy the marshaller (The WndProc pointer as a raw IntPtr in some cases, or as a method pointer in other cases). I can see that the params for GetClassInfo and RegisterWindowClass do take different structure types, but those types do not appear to be documented here.

-Danny

(http://homepages.borland.com/dthorpe/blog/delphi)

You should also check out these automatically generated PInvoke stubs which covers much of the WIn32 API

(http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=f1dd70e4-c212-4a6f-bff7-c82e34c8836f)

Cheers,

Peter Hallam

C# Compiler Dev Lead

How about a directory for the Compact Framework/coredll? - Ian Darling

This is great, but definitely needs somewhere we can define common constants and structures.

Rodney.

- Add a way to search and or highlight entries that have additional info added.

- Add a logon feature (use DotNetNuke?) to allow added posts to be tracked based on email address instead of IP address.

Charlie Kindel (http://www.kindel.com/blogs/charlie)

Some responses for the last 3 comments:

  • Ian, I've added coredll, so feel free to start adding pages!
  • Rodney, you can define pages for structures, etc. just like you can for functions. It might be nice to organize them differently, though...
  • Charlie, I'll have to consider other means of tracking. In the meantime, it would be great if folks fill out the "Identity" text box when making edits. Also, you can click on the "Show Recent Changes" link to see the most-recently-updated pages across the site.

Thanks, everyone, for your participation! -- Adam Nathan

Very nice But I also miss the structures, constants, etc. Would it be possible to organize the information such as the MSDN Library does instead? I believe it will be hard to find items in for example the shell32 tree when all enums, structures, interfaces etc. are added.

I'm thinking something like this instead:

Shell

  +-----Classes
  +-----Interfaces
  +-----Functions
  +-----Callback functions
  +-----Constants, Enumerations, and Flags
  +-----Structures
  +-----(Maybe more?)

Or is it possible to do this now giving a pagename such as shell32.Structures.APPBARDATA?

-- Andreas Häber

Cheers!

Guess I'll get started soon

Ian Darling.

Dang - I think I broke kernel32.CreateFile when adding coredll.CreateFile - Ian Darling

[Note from Adam: This is now fixed, and was actually unrelated to coredll.CreateFile. Thanks!]

Thank you very much, I've been waiting for something like this for a long time now.

Mark Fernandes.

Great idea. I would also be interested in a category on PInvoke how-tos. for example I'm still trying to figure out how to unmarshal an array of delegates on the unmanaged side - feel free to chime in if you happen to know that

Alex

Great job, this helps me alot.

Could you add for avifil32.dll?

[This is done. -Adam]

Eric

Adam - cheers. Can we add aygshell.dll too (another Pocket PC one)?

[This is done. -Adam]

Maybe Pocket PC stuff should be split off into a separate namespace?

[That's a good idea. For now, I'll leave them in the same list but as it grows I'll probably separate them somehow. -Adam]

Ian Darling

It would be GREAT if we had a project on here to do all of the interfaces. (i.e. IOleObject etc.) We could work on doing the entire MSHTML.dll with all of the interfaces etc. This is what kills me constantly.

Love the site! Great help!

James Hancock

Adam, this is an excellent and innovative site. I will bookmark it and share it with our programmers. Thanks a lot!

Tommie Carter

Adam great work. Can we add msi.dll?

David M. Kean

Code Syntax Highlighting Suggestion

Adam,

Greate Job! I installed Flexwiki out of the box and it is not the same. This site is much better (you fixed and improved a lot of things in Flexwiki). Now I am learning more about PInvoke

If I may suggest, how about code syntax highlighting similar or better to what is done in http://wikiserver.has.it ? That is, for example, in the preformatted part, <PRE> If it starts with '//' highlight Csharp words until the end </PRE>. Great for sample codes in this site. Or since this wiki is all about codes in C#, why not do syntax coloring in all preformatted texts? Just a thought.

Elrey Ronald (mailto:lambda326@hotmail.com)

So, Casey Chesnut and I (http://www.brains-n-brawn.com/) are working on some high-powered Compact Framework stuff and we realized that many of the P/Invoke calls here may not work for the Compact Framework. It may be useful to add a Flag or Field indicating whether it is or not supported by the Compact Framework. We could actually follow the pattern that the OpenCF people use in listing both the desktop and the CE P/Invokes on the same page and have it link to the right one. We can start making some contributions as well.

Sam Gentile (http://samgentile.com/blog/)

like from our email:

The marshalling restrictions are one problem, as well as which DLL is actually used. From the CF side, we usually do the dumb downed one to work on both desktop and device.

Then you only have to change which DLL the call goes to;

e.g. pointing to User32.dll for desktop or coredll on the device.

The OpenNetCF guys have a better pattern.

They implement it to work on both following the pattern below, to have the method work on both desktop and device.

public static bool CPAcquireContext(out IntPtr phProv, StringBuilder pszContainer, uint dwFlags, byte[] pVTable)

{

    if(Environment.OSVersion.Platform == PlatformID.WinCE)
        return CPAcquireContextCe(out phProv, pszContainer, dwFlags, pVTable);
    else

          return CPAcquireContextXp(out phProv, pszContainer, dwFlags, pVTable);

}

[DllImport(“coredll.dll”, EntryPoint="CPAcquireContext", SetLastError=true)]

private static extern bool CPAcquireContextCe(out IntPtr phProv, StringBuilder pszContainer, uint dwFlags, byte[] pVTable);

[DllImport(“advapi32.dll”, EntryPoint="CPAcquireContext", SetLastError=true)]

private static extern bool CPAcquireContextXp(out IntPtr phProv, StringBuilder pszContainer, uint dwFlags, byte[] pVTable);

-- Sam Gentile

 
Access PInvoke.net directly from VS:
Terms of Use
Find References
Show Printable Version
Revisions