//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1993 - 1993. // // File: widewrap.h // // Contents: Wrapper functions for Win32c API used by 32-bit OLE 2 // // History: 12-27-93 ErikGav Created // 06-14-94 KentCe Various Chicago build fixes. // //---------------------------------------------------------------------------- #ifndef _WIDEWRAP_H_ #define _WIDEWRAP_H_ #ifndef RC_INVOKED #pragma message ("INCLUDING WIDEWRAP.H from " __FILE__) #endif /* RC_INVOKED */ #ifdef _CHICAGO_ #ifdef __cplusplus extern "C" { #endif #undef WNDCLASS #define WNDCLASS WNDCLASSW #define WNDCLASST WNDCLASSA #undef STARTUPINFO #define STARTUPINFO STARTUPINFOW #undef WIN32_FIND_DATA #define WIN32_FIND_DATA WIN32_FIND_DATAW int AnsiToUnicodeOem(LPWSTR pwsz, LPCSTR sz, LONG cb); HANDLE WINAPI CreateFileX( LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ); #undef CreateFile #define CreateFile CreateFileX #define CreateFileT CreateFileA BOOL WINAPI DeleteFileX( LPCWSTR lpFileName ); #undef DeleteFile #define DeleteFile DeleteFileX #define DeleteFileT DeleteFileA UINT WINAPI RegisterClipboardFormatX( LPCWSTR lpszFormat); #undef RegisterClipboardFormat #define RegisterClipboardFormat RegisterClipboardFormatX #define RegisterClipboardFormatT RegisterClipboardFormatA int WINAPI GetClipboardFormatNameX( UINT format, LPWSTR lpszFormatName, int cchMaxCount); #undef GetClipboardFormatName #define GetClipboardFormatName GetClipboardFormatNameX #define GetClipboardFormatNameT GetClipboardFormatNameA LONG APIENTRY RegOpenKeyX ( HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult ); #undef RegOpenKey #define RegOpenKey RegOpenKeyX #define RegOpenKeyT RegOpenKeyA LONG APIENTRY RegQueryValueX ( HKEY hKey, LPCWSTR lpSubKey, LPWSTR lpValue, PLONG lpcbValue ); #undef RegQueryValue #define RegQueryValue RegQueryValueX #define RegQueryValueT RegQueryValueA LONG APIENTRY RegSetValueX ( HKEY hKey, LPCWSTR lpSubKey, DWORD dwType, LPCWSTR lpData, DWORD cbData ); #undef RegSetValue #define RegSetValue RegSetValueX #define RegSetValueT RegSetValueA UINT WINAPI RegisterWindowMessageX( LPCWSTR lpString); #undef RegisterWindowMessage #define RegisterWindowMessage RegisterWindowMessageX #define RegisterWindowMessageT RegisterWindowMessageA LONG APIENTRY RegOpenKeyExX ( HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult ); #undef RegOpenKeyEx #define RegOpenKeyEx RegOpenKeyExX #define RegOpenKeyExT RegOpenKeyExA LONG APIENTRY RegQueryValueExX ( HKEY hKey, LPCWSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData ); #undef RegQueryValueEx #define RegQueryValueEx RegQueryValueExX #define RegQueryValueExT RegQueryValueExA HWND WINAPI CreateWindowExX( DWORD dwExStyle, LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent , HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam); #undef CreateWindowEx #define CreateWindowEx CreateWindowExX #define CreateWindowExT CreateWindowExA ATOM WINAPI RegisterClassX( CONST WNDCLASSW *lpWndClass); #undef RegisterClass #define RegisterClass RegisterClassX #define RegisterClassT RegisterClassA BOOL WINAPI UnregisterClassX( LPCWSTR lpClassName, HINSTANCE hInstance); #undef UnregisterClass #define UnregisterClass UnregisterClassX #define UnregisterClassT UnregisterClassA int WINAPIV wsprintfX(LPWSTR pwszOut, LPCWSTR pwszFormat, ...); #undef wsprintf #define wsprintf wsprintfX #define wsprintfT wsprintfA HWND WINAPI CreateWindowX( LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent , HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam); #undef CreateWindow #define CreateWindow CreateWindowX #define CreateWindowT CreateWindowA HANDLE WINAPI GetPropX( HWND hWnd, LPCWSTR lpString); #undef GetProp #define GetProp GetPropX #define GetPropT GetPropA BOOL WINAPI SetPropX( HWND hWnd, LPCWSTR lpString, HANDLE hData); #undef SetProp #define SetProp SetPropX #define SetPropT SetPropA HANDLE WINAPI RemovePropX( HWND hWnd, LPCWSTR lpString); #undef RemoveProp #define RemoveProp RemovePropX #define RemovePropT RemovePropA UINT WINAPI GetProfileIntX( LPCWSTR lpAppName, LPCWSTR lpKeyName, INT nDefault ); #undef GetProfileInt #define GetProfileInt GetProfileIntX #define GetProfileIntT GetProfileIntA ATOM WINAPI GlobalAddAtomX( LPCWSTR lpString ); #undef GlobalAddAtom #define GlobalAddAtom GlobalAddAtomX #define GlobalAddAtomT GlobalAddAtomA UINT WINAPI GlobalGetAtomNameX( ATOM nAtom, LPWSTR lpBuffer, int nSize ); #undef GlobalGetAtomName #define GlobalGetAtomName GlobalGetAtomNameX #define GlobalGetAtomNameT GlobalGetAtomNameA DWORD WINAPI GetModuleFileNameX( HMODULE hModule, LPWSTR lpFilename, DWORD nSize ); #undef GetModuleFileName #define GetModuleFileName GetModuleFileNameX #define GetModuleFileNameT GetModuleFileNameA LPWSTR WINAPI CharPrevX( LPCWSTR lpszStart, LPCWSTR lpszCurrent); #undef CharPrev #define CharPrev CharPrevX #define CharPrevT CharPrevA HFONT WINAPI CreateFontX(int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCWSTR); #undef CreateFont #define CreateFont CreateFontX #define CreateFontT CreateFontA HMODULE WINAPI LoadLibraryX( LPCWSTR lpLibFileName ); #undef LoadLibrary #define LoadLibrary LoadLibraryX #define LoadLibraryT LoadLibraryA HMODULE WINAPI LoadLibraryExX( LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags ); #undef LoadLibraryEx #define LoadLibraryEx LoadLibraryExX #define LoadLibraryExT LoadLibraryExA LONG APIENTRY RegDeleteKeyX ( HKEY hKey, LPCWSTR lpSubKey ); #undef RegDeleteKey #define RegDeleteKey RegDeleteKeyX #define RegDeleteKeyT RegDeleteKeyA #undef RpcStringBindingCompose #define RpcStringBindingCompose RpcStringBindingComposeW #undef RpcBindingFromStringBinding #define RpcBindingFromStringBinding RpcBindingFromStringBindingW #undef RpcStringFree #define RpcStringFree RpcStringFreeW BOOL WINAPI CreateProcessX( LPCWSTR lpApplicationName, LPWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation ); #undef CreateProcess #define CreateProcess CreateProcessX #define CreateProcessT CreateProcessA LONG APIENTRY RegEnumKeyExX ( HKEY hKey, DWORD dwIndex, LPWSTR lpName, LPDWORD lpcbName, LPDWORD lpReserved, LPWSTR lpClass, LPDWORD lpcbClass, PFILETIME lpftLastWriteTime ); #undef RegEnumKeyEx #define RegEnumKeyEx RegEnumKeyExX #define RegEnumKeyExT RegEnumKeyExA #undef RpcServerUseProtseqEp #define RpcServerUseProtseqEp RpcServerUseProtseqEpW BOOL WINAPI AppendMenuX( HMENU hMenu, UINT uFlags, UINT uIDNewItem, LPCWSTR lpNewItem ); #undef AppendMenu #define AppendMenu AppendMenuX #define AppendMenuT AppendMenuA HANDLE WINAPI OpenEventX( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCWSTR lpName ); #undef OpenEvent #define OpenEvent OpenEventX #define OpenEventT OpenEventA HANDLE WINAPI CreateEventX( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCWSTR lpName ); #undef CreateEvent #define CreateEvent CreateEventX #define CreateEventT CreateEventA UINT WINAPI GetDriveTypeX( LPCWSTR lpRootPathName ); #undef GetDriveType #define GetDriveType GetDriveTypeX #define GetDriveTypeT GetDriveTypeA DWORD WINAPI GetFileAttributesX( LPCWSTR lpFileName ); #undef GetFileAttributes #define GetFileAttributes GetFileAttributesX #define GetFileAttributesT GetFileAttributesA LONG APIENTRY RegEnumKeyX ( HKEY hKey, DWORD dwIndex, LPWSTR lpName, DWORD cbName ); #undef RegEnumKey #define RegEnumKey RegEnumKeyX #define RegEnumKeyT RegEnumKeyA LONG APIENTRY RegEnumValueX( HKEY hkey, DWORD dwIndex, LPWSTR wszName, LPDWORD pcbName, LPDWORD pReserved, LPDWORD ptype, LPBYTE pValue, LPDWORD pcbValue ); #undef RegEnumValue #define RegEnumValue RegEnumValueX #define RegEnumValueT RegEnumValueA HANDLE WINAPI FindFirstFileX( LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFindFileData ); #undef FindFirstFile #define FindFirstFile FindFirstFileX #define FindFirstFileT FindFirstFileA #undef RegisterProtseq #define RegisterProtseq RegisterProtseqW #undef RpcStringBindingParse #define RpcStringBindingParse RpcStringBindingParseW #undef RpcNetworkIsProtseqValid #define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidW #undef RpcBindingToStringBinding #define RpcBindingToStringBinding RpcBindingToStringBindingW #undef RpcServerUseProtseq #define RpcServerUseProtseq RpcServerUseProtseqW BOOL WINAPI GetComputerNameX ( LPWSTR lpBuffer, LPDWORD nSize ); #undef GetComputerName #define GetComputerName GetComputerNameX #define GetComputerNameT GetComputerNameA //The following force Chicago to directly use the ANSI versions #undef DefWindowProc #define DefWindowProc DefWindowProcA #undef CopyMetaFile // Currently str ptr is always #define CopyMetaFile CopyMetaFileA // null, write a wrapper if this // changes #undef CreateMetaFile #define CreateMetaFile CreateMetaFileA #undef PostMessage #define PostMessage PostMessageA #undef SendMessage #define SendMessage SendMessageA #undef PeekMessage #define PeekMessage PeekMessageA #undef DispatchMessage #define DispatchMessage DispatchMessageA #undef GetWindowLong #define GetWindowLong GetWindowLongA #undef SetWindowLong #define SetWindowLong SetWindowLongA DWORD WINAPI GetShortPathNameX( LPCWSTR lpszLongPath, LPWSTR lpszShortPath, DWORD cchBuffer ); #undef GetShortPathName #define GetShortPathName GetShortPathNameX #define GetShortPathNameT GetShortPathNameA DWORD WINAPI GetFullPathNameX( LPCWSTR lpFileName, DWORD nBufferLength, LPWSTR lpBuffer, LPWSTR *lpFilePart ); #undef GetFullPathName #define GetFullPathName GetFullPathNameX #define GetFullPathNameT GetFullPathNameA DWORD WINAPI SearchPathX( LPCWSTR lpPath, LPCWSTR lpFileName, LPCWSTR lpExtension, DWORD nBufferLength, LPWSTR lpBuffer, LPWSTR *lpFilePart ); #undef SearchPath #define SearchPath SearchPathX #define SearchPathT SearchPathA ATOM WINAPI GlobalFindAtomX( LPCWSTR lpString ); #undef GlobalFindAtom #define GlobalFindAtom GlobalFindAtomX #define GlobalFindAtomT GlobalFindAtomA int WINAPI GetClassNameX( HWND hWnd, LPWSTR lpClassName, int nMaxCount); #undef GetClassName #define GetClassName GetClassNameX #define GetClassNameT GetClassNameA LPWSTR WINAPI CharLowerX( LPWSTR lpsz); #define CharLowerW CharLowerX LPWSTR WINAPI CharUpperX( LPWSTR lpsz); inline LPWSTR CharUpperW(LPWSTR lpsz) { if (((DWORD)lpsz & 0xffff0000) == 0) { return (LPWSTR)towupper ((wchar_t)lpsz); } else { return _wcsupr (lpsz); } } #define CharLowerBuffW CharLowerBuffW_not_available_on_Win9x #define CharUpperBuffW CharUpperBuffW_not_available_on_Win9x BOOL WINAPI GetStringTypeX( DWORD dwInfoType, LPCWSTR lpSrcStr, int cchSrc, LPWORD lpCharType); #define GetStringTypeW GetStringTypeX BOOL WINAPI IsCharAlphaX( WCHAR ch); #define IsCharAlphaW IsCharAlphaX BOOL WINAPI IsCharAlphaNumericX( WCHAR ch); #define IsCharAlphaNumericW IsCharAlphaNumericX #define IsCharLowerW IsCharLowerW_is_not_available_on_Win9x #define IsCharUpperW IsCharUpperW_is_not_available_on_Win9x #define LCMapStringW LCMapStringW_is_not_available_on_Win9x LPWSTR WINAPI lstrcatX( LPWSTR lpString1, LPCWSTR lpString2 ); #define lstrcatW lstrcatX LPWSTR WINAPI lstrcpyX( LPWSTR lpString1, LPCWSTR lpString2 ); // #define lstrcpyW lstrcpyX inline LPWSTR lstrcpyW( LPWSTR lpString1, LPCWSTR lpString2 ) { LPWSTR lpDest = lpString1; while( *lpDest++ = *lpString2++ ) ; return lpString1; } LPWSTR WINAPI lstrcpynX( LPWSTR lpString1, LPCWSTR lpString2, int iMaxLength ); #define lstrcpynW lstrcpynX int WINAPI lstrcmpX( LPCWSTR lpString1, LPCWSTR lpString2 ); #define lstrcmpW lstrcmpX int WINAPI lstrcmpiX( LPCWSTR lpString1, LPCWSTR lpString2 ); #define lstrcmpiW lstrcmpiX HANDLE WINAPI CreateFileMappingX( HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCWSTR lpName ); #undef CreateFileMapping #define CreateFileMapping CreateFileMappingX #define CreateFileMappingT CreateFileMappingA HANDLE WINAPI OpenFileMappingX( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCWSTR lpName ); #undef OpenFileMapping #define OpenFileMapping OpenFileMappingX #define OpenFileMappingT OpenFileMappingA #ifdef __cplusplus } #endif #else // // These are the definitions for NT // #define CreateFileT CreateFileW #define DeleteFileT DeleteFileW #define RegisterClipboardFormatT RegisterClipboardFormatW #define GetClipboardFormatNameT GetClipboardFormatNameW #define RegOpenKeyT RegOpenKeyW #define RegQueryValueT RegQueryValueW #define RegSetValueT RegSetValueW #define RegisterWindowMessageT RegisterWindowMessageW #define RegOpenKeyExT RegOpenKeyExW #define RegQueryValueExT RegQueryValueExW #define CreateWindowExT CreateWindowExW #define RegisterClassT RegisterClassW #define UnregisterClassT UnregisterClassW #define wsprintfT wsprintfW #define CreateWindowT CreateWindowW #define GetPropT GetPropW #define SetPropT SetPropW #define RemovePropT RemovePropW #define GetProfileIntT GetProfileIntW #define GlobalAddAtomT GlobalAddAtomW #define GlobalGetAtomNameT GlobalGetAtomNameW #define GetModuleFileNameT GetModuleFileNameW #define CharPrevT CharPrevW #define CreateFontT CreateFontW #define LoadLibraryT LoadLibraryW #define LoadLibraryExT LoadLibraryExW #define RegDeleteKeyT RegDeleteKeyW #define CreateProcessT CreateProcessW #define RegEnumKeyExT RegEnumKeyExW #define AppendMenuT AppendMenuW #define OpenEventT OpenEventW #define CreateEventT CreateEventW #define GetDriveTypeT GetDriveTypeW #define GetFileAttributesT GetFileAttributesW #define RegEnumKeyT RegEnumKeyW #define RegEnumValueT RegEnumValueW #define FindFirstFileT FindFirstFileW #define GetComputerNameT GetComputerNameW #define GetShortPathNameT GetShortPathNameW #define GetFullPathNameT GetFullPathNameW #define SearchPathT SearchPathW #define GlobalFindAtomT GlobalFindAtomW #define GetClassNameT GetClassNameW #define CreateFileMappingT CreateFileMappingW #define OpenFileMappingT OpenFileMappingW #define WNDCLASST WNDCLASSW #endif // _CHICAGO_ #endif // _WIDEWRAP_H_