Re: Two function prototypes in two separate .h files
"SME" wrote:
My queries are:
1. How can I force the prototype in winuser.h rather than
that in afxwin.h?
You don't need to force it. It appears that you created MFC
project with Visual Studio rather than plain C Win32 API
project. That's why you see all these errors. MFC defines
classes for many Win32 objects (like window, DC, etc.).
Often these classes have methods with the same name as
corresponding API function. However, classes' methods expect
less parameters and other types for parameters.
When you make new project select "Win32" category instead of
MFC. Then follow the wizard to generate boilerplate code.
2. If that is not desirable or not possible, can I cast
"CDC *" to "HDC" so that my code will be as:
CDC * pDc;
pDC = GetDC ( );
RECT * lpRect = 0;
bOK = EnumEnhMetaFile (pDc, ..., lpRect);
No, you cannot cast pointer to class to HDC and expect it to
work. Either use MFC and play by the rules or use Win32 API.
BTW, the above code will lead to access violation exception,
since there is nothing behind `lpRect' pointer. You need to
define RECT variable and pass pointer to it to the
`EnumEnhMetaFile' call:
RECT rc = { 0 };
bOK = EnumEnhMetaFile (pDc, ..., &rc);
3. Which is the forum for discussing GDI issues?
microsoft.public.win32.programmer.gdi
microsoft.public.platformsdk.gdi (this group seems quite
dormant)
HTH
Alex