7344726a7a
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
439 lines
9.8 KiB
C
439 lines
9.8 KiB
C
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: winundef.h
|
|
// Purpose: undefine the common symbols #define'd by <windows.h>
|
|
// Author: Vadim Zeitlin
|
|
// Modified by:
|
|
// Created: 16.05.99
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) wxWidgets team
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
/* THIS SHOULD NOT BE USED since you might include it once e.g. in window.h,
|
|
* then again _AFTER_ you've included windows.h, in which case it won't work
|
|
* a 2nd time -- JACS
|
|
#ifndef _WX_WINUNDEF_H_
|
|
#define _WX_WINUNDEF_H_
|
|
*/
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// windows.h #defines the following identifiers which are also used in wxWin so
|
|
// we replace these symbols with the corresponding inline functions and
|
|
// undefine the macro.
|
|
//
|
|
// This looks quite ugly here but allows us to write clear (and correct!) code
|
|
// elsewhere because the functions, unlike the macros, respect the scope.
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// CreateDialog
|
|
|
|
#if defined(CreateDialog)
|
|
#undef CreateDialog
|
|
|
|
inline HWND CreateDialog(HINSTANCE hInstance,
|
|
LPCTSTR pTemplate,
|
|
HWND hwndParent,
|
|
DLGPROC pDlgProc)
|
|
{
|
|
#ifdef _UNICODE
|
|
return CreateDialogW(hInstance, pTemplate, hwndParent, pDlgProc);
|
|
#else
|
|
return CreateDialogA(hInstance, pTemplate, hwndParent, pDlgProc);
|
|
#endif
|
|
}
|
|
#endif
|
|
|
|
// CreateWindow
|
|
|
|
#if defined(CreateWindow)
|
|
#undef CreateWindow
|
|
|
|
inline HWND CreateWindow(LPCTSTR lpClassName,
|
|
LPCTSTR lpWndClass,
|
|
DWORD dwStyle,
|
|
int x, int y, int w, int h,
|
|
HWND hWndParent,
|
|
HMENU hMenu,
|
|
HINSTANCE hInstance,
|
|
LPVOID lpParam)
|
|
{
|
|
#ifdef _UNICODE
|
|
return CreateWindowW(lpClassName, lpWndClass, dwStyle, x, y, w, h,
|
|
hWndParent, hMenu, hInstance, lpParam);
|
|
#else
|
|
return CreateWindowA(lpClassName, lpWndClass, dwStyle, x, y, w, h,
|
|
hWndParent, hMenu, hInstance, lpParam);
|
|
#endif
|
|
}
|
|
#endif
|
|
|
|
// LoadMenu
|
|
|
|
#ifdef LoadMenu
|
|
#undef LoadMenu
|
|
|
|
inline HMENU LoadMenu(HINSTANCE instance, LPCTSTR name)
|
|
{
|
|
#ifdef _UNICODE
|
|
return LoadMenuW(instance, name);
|
|
#else
|
|
return LoadMenuA(instance, name);
|
|
#endif
|
|
}
|
|
#endif
|
|
|
|
// FindText
|
|
|
|
#ifdef FindText
|
|
#undef FindText
|
|
|
|
inline HWND APIENTRY FindText(LPFINDREPLACE lpfindreplace)
|
|
{
|
|
#ifdef UNICODE
|
|
return FindTextW(lpfindreplace);
|
|
#else
|
|
return FindTextA(lpfindreplace);
|
|
#endif // !UNICODE
|
|
}
|
|
#endif
|
|
|
|
// GetCharWidth
|
|
|
|
#ifdef GetCharWidth
|
|
#undef GetCharWidth
|
|
inline BOOL GetCharWidth(HDC dc, UINT first, UINT last, LPINT buffer)
|
|
{
|
|
#ifdef _UNICODE
|
|
return GetCharWidthW(dc, first, last, buffer);
|
|
#else
|
|
return GetCharWidthA(dc, first, last, buffer);
|
|
#endif
|
|
}
|
|
#endif
|
|
|
|
// FindWindow
|
|
|
|
#ifdef FindWindow
|
|
#undef FindWindow
|
|
#ifdef _UNICODE
|
|
inline HWND FindWindow(LPCWSTR classname, LPCWSTR windowname)
|
|
{
|
|
return FindWindowW(classname, windowname);
|
|
}
|
|
#else
|
|
inline HWND FindWindow(LPCSTR classname, LPCSTR windowname)
|
|
{
|
|
return FindWindowA(classname, windowname);
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
// PlaySound
|
|
|
|
#ifdef PlaySound
|
|
#undef PlaySound
|
|
#ifdef _UNICODE
|
|
inline BOOL PlaySound(LPCWSTR pszSound, HMODULE hMod, DWORD fdwSound)
|
|
{
|
|
return PlaySoundW(pszSound, hMod, fdwSound);
|
|
}
|
|
#else
|
|
inline BOOL PlaySound(LPCSTR pszSound, HMODULE hMod, DWORD fdwSound)
|
|
{
|
|
return PlaySoundA(pszSound, hMod, fdwSound);
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
// GetClassName
|
|
|
|
#ifdef GetClassName
|
|
#undef GetClassName
|
|
#ifdef _UNICODE
|
|
inline int GetClassName(HWND h, LPWSTR classname, int maxcount)
|
|
{
|
|
return GetClassNameW(h, classname, maxcount);
|
|
}
|
|
#else
|
|
inline int GetClassName(HWND h, LPSTR classname, int maxcount)
|
|
{
|
|
return GetClassNameA(h, classname, maxcount);
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
// GetClassInfo
|
|
|
|
#ifdef GetClassInfo
|
|
#undef GetClassInfo
|
|
#ifdef _UNICODE
|
|
inline BOOL GetClassInfo(HINSTANCE h, LPCWSTR name, LPWNDCLASSW winclass)
|
|
{
|
|
return GetClassInfoW(h, name, winclass);
|
|
}
|
|
#else
|
|
inline BOOL GetClassInfo(HINSTANCE h, LPCSTR name, LPWNDCLASSA winclass)
|
|
{
|
|
return GetClassInfoA(h, name, winclass);
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
// LoadAccelerators
|
|
|
|
#ifdef LoadAccelerators
|
|
#undef LoadAccelerators
|
|
#ifdef _UNICODE
|
|
inline HACCEL LoadAccelerators(HINSTANCE h, LPCWSTR name)
|
|
{
|
|
return LoadAcceleratorsW(h, name);
|
|
}
|
|
#else
|
|
inline HACCEL LoadAccelerators(HINSTANCE h, LPCSTR name)
|
|
{
|
|
return LoadAcceleratorsA(h, name);
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
// DrawText
|
|
|
|
#ifdef DrawText
|
|
#undef DrawText
|
|
#ifdef _UNICODE
|
|
inline int DrawText(HDC h, LPCWSTR str, int count, LPRECT rect, UINT format)
|
|
{
|
|
return DrawTextW(h, str, count, rect, format);
|
|
}
|
|
#else
|
|
inline int DrawText(HDC h, LPCSTR str, int count, LPRECT rect, UINT format)
|
|
{
|
|
return DrawTextA(h, str, count, rect, format);
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/*
|
|
When this file is included, sometimes the wxCHECK_W32API_VERSION macro
|
|
is undefined. With for example CodeWarrior this gives problems with
|
|
the following code:
|
|
#if 0 && wxCHECK_W32API_VERSION( 0, 5 )
|
|
Because CodeWarrior does macro expansion before test evaluation.
|
|
We define wxCHECK_W32API_VERSION here if it's undefined.
|
|
*/
|
|
#if !defined(__GNUG__) && !defined(wxCHECK_W32API_VERSION)
|
|
#define wxCHECK_W32API_VERSION(maj, min) (0)
|
|
#endif
|
|
|
|
// StartDoc
|
|
|
|
#ifdef StartDoc
|
|
#undef StartDoc
|
|
#if defined( __GNUG__ ) && !wxCHECK_W32API_VERSION( 0, 5 )
|
|
#define DOCINFOW DOCINFO
|
|
#define DOCINFOA DOCINFO
|
|
#endif
|
|
#ifdef _UNICODE
|
|
inline int StartDoc(HDC h, CONST DOCINFOW* info)
|
|
{
|
|
return StartDocW(h, (DOCINFOW*) info);
|
|
}
|
|
#else
|
|
inline int StartDoc(HDC h, CONST DOCINFOA* info)
|
|
{
|
|
return StartDocA(h, (DOCINFOA*) info);
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
// GetObject
|
|
|
|
#ifdef GetObject
|
|
#undef GetObject
|
|
inline int GetObject(HGDIOBJ h, int i, LPVOID buffer)
|
|
{
|
|
#ifdef _UNICODE
|
|
return GetObjectW(h, i, buffer);
|
|
#else
|
|
return GetObjectA(h, i, buffer);
|
|
#endif
|
|
}
|
|
#endif
|
|
|
|
// GetMessage
|
|
|
|
#ifdef GetMessage
|
|
#undef GetMessage
|
|
inline int GetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax)
|
|
{
|
|
#ifdef _UNICODE
|
|
return GetMessageW(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);
|
|
#else
|
|
return GetMessageA(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);
|
|
#endif
|
|
}
|
|
#endif
|
|
|
|
// LoadIcon
|
|
#ifdef LoadIcon
|
|
#undef LoadIcon
|
|
inline HICON LoadIcon(HINSTANCE hInstance, LPCTSTR lpIconName)
|
|
{
|
|
#ifdef _UNICODE
|
|
return LoadIconW(hInstance, lpIconName);
|
|
#else // ANSI
|
|
return LoadIconA(hInstance, lpIconName);
|
|
#endif // Unicode/ANSI
|
|
}
|
|
#endif // LoadIcon
|
|
|
|
// LoadBitmap
|
|
#ifdef LoadBitmap
|
|
#undef LoadBitmap
|
|
inline HBITMAP LoadBitmap(HINSTANCE hInstance, LPCTSTR lpBitmapName)
|
|
{
|
|
#ifdef _UNICODE
|
|
return LoadBitmapW(hInstance, lpBitmapName);
|
|
#else // ANSI
|
|
return LoadBitmapA(hInstance, lpBitmapName);
|
|
#endif // Unicode/ANSI
|
|
}
|
|
#endif // LoadBitmap
|
|
|
|
// LoadLibrary
|
|
|
|
#ifdef LoadLibrary
|
|
#undef LoadLibrary
|
|
#ifdef _UNICODE
|
|
inline HINSTANCE LoadLibrary(LPCWSTR lpLibFileName)
|
|
{
|
|
return LoadLibraryW(lpLibFileName);
|
|
}
|
|
#else
|
|
inline HINSTANCE LoadLibrary(LPCSTR lpLibFileName)
|
|
{
|
|
return LoadLibraryA(lpLibFileName);
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
// FindResource
|
|
#ifdef FindResource
|
|
#undef FindResource
|
|
#ifdef _UNICODE
|
|
inline HRSRC FindResource(HMODULE hModule, LPCWSTR lpName, LPCWSTR lpType)
|
|
{
|
|
return FindResourceW(hModule, lpName, lpType);
|
|
}
|
|
#else
|
|
inline HRSRC FindResource(HMODULE hModule, LPCSTR lpName, LPCSTR lpType)
|
|
{
|
|
return FindResourceA(hModule, lpName, lpType);
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
// IsMaximized
|
|
|
|
#ifdef IsMaximized
|
|
#undef IsMaximized
|
|
inline BOOL IsMaximized(HWND hwnd)
|
|
{
|
|
#ifdef __WXWINCE__
|
|
wxUnusedVar(hwnd);
|
|
return FALSE;
|
|
#else
|
|
return IsZoomed(hwnd);
|
|
#endif
|
|
}
|
|
#endif
|
|
|
|
// GetFirstChild
|
|
|
|
#ifdef GetFirstChild
|
|
#undef GetFirstChild
|
|
inline HWND GetFirstChild(HWND hwnd)
|
|
{
|
|
#ifdef __WXWINCE__
|
|
wxUnusedVar(hwnd);
|
|
return 0;
|
|
#else
|
|
return GetTopWindow(hwnd);
|
|
#endif
|
|
}
|
|
#endif
|
|
|
|
// GetPrevSibling
|
|
|
|
#ifdef GetPrevSibling
|
|
#undef GetPrevSibling
|
|
inline HWND GetPrevSibling(HWND hwnd)
|
|
{
|
|
return GetWindow(hwnd,GW_HWNDPREV);
|
|
}
|
|
#endif
|
|
|
|
// GetNextSibling
|
|
|
|
#ifdef GetNextSibling
|
|
#undef GetNextSibling
|
|
inline HWND GetNextSibling(HWND hwnd)
|
|
{
|
|
return GetWindow(hwnd,GW_HWNDNEXT);
|
|
}
|
|
#endif
|
|
|
|
// For WINE
|
|
|
|
#if defined(GetWindowStyle)
|
|
#undef GetWindowStyle
|
|
#endif
|
|
|
|
// For ming and cygwin
|
|
|
|
// GetFirstChild
|
|
#ifdef GetFirstChild
|
|
#undef GetFirstChild
|
|
inline HWND GetFirstChild(HWND h)
|
|
{
|
|
return GetTopWindow(h);
|
|
}
|
|
#endif
|
|
|
|
|
|
// GetNextSibling
|
|
#ifdef GetNextSibling
|
|
#undef GetNextSibling
|
|
inline HWND GetNextSibling(HWND h)
|
|
{
|
|
return GetWindow(h, GW_HWNDNEXT);
|
|
}
|
|
#endif
|
|
|
|
|
|
#ifdef Yield
|
|
#undef Yield
|
|
#endif
|
|
|
|
|
|
#if defined(__WXWINCE__) && defined(DrawIcon) //#ifdef DrawIcon
|
|
#undef DrawIcon
|
|
inline BOOL DrawIcon(HDC hdc, int x, int y, HICON hicon)
|
|
{
|
|
return DrawIconEx(hdc,x,y,hicon,0,0,0,NULL, DI_NORMAL) ;
|
|
}
|
|
#endif
|
|
|
|
|
|
// GetWindowProc
|
|
//ifdef GetWindowProc
|
|
// #undef GetWindowProc
|
|
//endif
|
|
//ifdef GetNextChild
|
|
// #undef GetNextChild
|
|
//endif
|
|
|
|
// #endif // _WX_WINUNDEF_H_
|
|
|