Have you seen the documentation for the GDI+ in the latest Platform SDK? It is a successor to the old good GDI, and it's introduced with Windows XP. It is said you should create Graphics object and use methods of this object to draw on DC, and there are documented methods of this object, but it's completly unusable for assembler, because you even don't know how to create object of that kind.
I've analyzed GdiPlusGraphics.h from the Include directory, and I've found that the constructor of Graphics object uses the functions GdipCreateFromHDC,GdipCreateFromHDC2 or GdipCreateFromHWND, depending of the constructor arguments, and in the same way, for example Graphics::DrawLine is using the GdipDrawLine function, but none of these functions is documented in the Platform SDK help files. So it seems we have to make out own documentation of GDI+ functions for the assembler, because they are hidden behind the C++ classes.
Posted on 2002-04-21 12:53:35 by Tomasz Grysztar

As far as I understand, GDI based API functions still work OK in XP, its just that there may be additional functions available only through C++ functionality.

Ernie Murphy has done some COM based interface graphics stuff recently in MASM so i don't see that you have to go the path of C++ classes unless the capacity is contained in C++ runtime DLLs.


Posted on 2002-04-21 16:19:51 by hutch--
I just peeked at the goodies inside GDI+, and they look great, like alpha blending, lots of image support (BMP GIF JPEG Exif PNG TIFF ICON WMF EMF ), and enough to want more.

Unfortunately, I can't download the redistributable. MSDN doesn't like me anymore.

Anyway, it would take some reversing to understand what the NEW and DELETE ops in C++ are actually doing to impliment them in ASM. Probably the simplest way is to build some of the GDI+ sample apps with the 'generate asm code' switch ON.

(later: OK, MSDN is now back online)
Posted on 2002-04-22 19:26:29 by Ernie