News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

GdiTransparentBlt

Started by dedndave, May 24, 2012, 07:47:31 AM

Previous topic - Next topic

dedndave

GdiTransparentBlt missing from gdi32.inc/lib

MichaelW

I checked the GDI32.DLL exports on my Windows 2000 system and GdiTransparentBlt is there, but strangely enough it's not listed in my 2003 PSDK.

According to this it's the same as TransparentBlt, and it appears to produce the same output
Well Microsoft, here's another nice mess you've gotten us into.

dedndave

it is the same - probably a wrapper
the TransparentBlt function is in msimg32.dll

by using the Gdi version, we don't have to include msimg32.inc/lib   :P

MichaelW

I just did dumps of both DLLs and GDI32.dll does not import anything from MSIMG32.DLL, but here is a listing of what MSIMG32.dll imports from GDI32.dll:

    GDI32.dll
              6B2C1000 Import Address Table
              6B2C15C8 Import Name Table
              FFFFFFFF time date stamp
              FFFFFFFF Index of first forwarder reference

      77F6763F    ED  GdiGradientFill
      77F677F1   109  GdiTransparentBlt
      77F4334B   157  GetObjectA
      77F45946   12D  GetDeviceCaps
      77F67553    B6  GdiAlphaBlend
      77F420CB   158  GetObjectType
      77F45DC7   126  GetCurrentObject


So I agree, the most direct route would be to fix the import library for GDI32.dll.

I still don't understand why GdiTransparentBlt is not documented in the 2003 PSDK. What reason could Microsoft have for not documenting it?

Well Microsoft, here's another nice mess you've gotten us into.

dedndave

good to know, Michael

especially interesting are GdiGradientFill and GdiAlphaBlend
they also do not appear in gdi32.inc/lib
the others do

LordAdef

#5
Hey, resurrecting this thread,

QuoteGdiTransparentBlt missing from gdi32.inc/lib

Is this still the case?

My code says I´m missing the prototype.

I´m using TransparentBlt instead (from msimg32.lib), but was curious to know nevertheless.

Cheers

hutch--

Alex,

Its probably a Microsoft naming quirk, the reliable way to test this is to try and dynamically load the API With LoadLibrary() GetProcAddress() and if yu get the correct return values, you can call the API directly.

dedndave

i think i added it to mine and created a new gdi32.dll :P
Hutch will get around to it, when he's not busy - lol
i think Hutch is always busy, so don't hold your breath