#include <io.h>
#include <windows.h>
+#if defined(__MWERKS__)
+#include <wingdi.h>
+#include <winuser.h>
+#endif
+
#ifndef __TWIN32__
-#ifdef __GNUWIN32__
+#if defined (__GNUWIN32__) && !defined(wxUSE_NORLANDER_HEADERS)
#include "wx/msw/gnuwin32/extra.h"
#endif
#endif
+#include "wx/wxchar.h"
#include "wx/msw/curicop.h"
#include "wx/msw/curico.h"
+#include "wx/string.h"
//*****************************************************************************
//* Function : ReadIconFile() *
//* be created for any reason. *
//*****************************************************************************
-HICON ReadIconFile( char *szFileName, HINSTANCE hInst, int *W, int *H)
+HICON ReadIconFile( wxChar *szFileName, HINSTANCE hInst, int *W, int *H)
{ HICON hIcon;
HANDLE hDIB;
//* monochrome. *
//*****************************************************************************
-HICON CursorToIcon( char *szFileName, HINSTANCE hInst, int *W, int *H)
+HICON CursorToIcon( wxChar *szFileName, HINSTANCE hInst, int *W, int *H)
{ HANDLE hDIB; // Handle to DIB memory
HICON hIcon; // Handle to Icon
//* is corrupt or if memory cannot be allocated for the DIB info. *
//*****************************************************************************
-HANDLE ReadIcon( char *szFileName, int *W, int *H)
+HANDLE ReadIcon( wxChar *szFileName, int *W, int *H)
{ ICONFILEHEADER iconFileHead; // ICON file header structure
ICONFILERES iconFileRes; // ICON file resource
WORD cbHead,
nDirEntries = 0;
// Open and read the .ICO file header and the first ICONFILERES
- hFile = _lopen( szFileName, OF_READ);
+ hFile = _lopen( wxFNCONV(szFileName), OF_READ);
cbHead = _lread( hFile, (LPSTR)&iconFileHead, sizeof(ICONFILEHEADER));
cbRes = _lread( hFile, (LPSTR)&iconFileRes, sizeof(ICONFILERES));
++nDirEntries;
return (HANDLE) NULL;
// inserted by P.S.
- while( (nDirEntries < iconFileHead.wResourceCount) &&
+ while( ((unsigned)nDirEntries < iconFileHead.wResourceCount) &&
((iconFileRes.bWidth != nWidth) || (iconFileRes.bHeight != nHeight)))
{
cbRes = _lread( hFile, (LPSTR )&iconFileRes, sizeof( ICONFILERES));
lpDIB->bmiHeader.biBitCount)));
// Get a hDC so we can create a bitmap compatible with it
- hDC = CreateDC( "DISPLAY", NULL, NULL, NULL);
+ hDC = CreateDC( _T("DISPLAY"), NULL, NULL, NULL);
// 5) Create a device dependent bitmap with the XOR bits.
hbmXor = CreateDIBitmap( hDC, (LPBITMAPINFOHEADER)&(lpDIB->bmiHeader),
//* be created for any reason. *
//*****************************************************************************
-HCURSOR ReadCursorFile( char *szFileName, HINSTANCE hInst, int *W, int *H,
+HCURSOR ReadCursorFile( wxChar *szFileName, HINSTANCE hInst, int *W, int *H,
int *XHot, int *YHot)
{ HANDLE hDIB; // Handle to DIB memory
HCURSOR hCursor;
//* monochrome. *
//*****************************************************************************
-HCURSOR IconToCursor( char *szFileName, HINSTANCE hInst, int XHot, int YHot,
+HCURSOR IconToCursor( wxChar *szFileName, HINSTANCE hInst, int XHot, int YHot,
int *W, int *H)
{ HCURSOR hCursor;
HANDLE hDIB;
//* is corrupt or if memory cannot be allocated for the DIB info. *
//*****************************************************************************
-HANDLE ReadCur( char *szFileName, LPPOINT lpptHotSpot, int *W, int *H)
+HANDLE ReadCur( wxChar *szFileName, LPPOINT lpptHotSpot, int *W, int *H)
{ CURFILEHEADER curFileHead; // CURSOR file header structure
CURFILERES curFileRes; // CURSOR file resource
WORD cbHead,
nDirEntries = 0;
// Open and read the .ICO file header and the first ICONFILERES
- hFile = _lopen( szFileName, OF_READ);
+ hFile = _lopen( wxFNCONV(szFileName), OF_READ);
cbHead = _lread( hFile, (LPSTR )&curFileHead, sizeof( CURFILEHEADER));
cbRes = _lread( hFile, (LPSTR )&curFileRes, sizeof( CURFILERES));
++nDirEntries;
return (HANDLE) NULL;
// following added by P.S.
- while( (nDirEntries < curFileHead.wResourceCount) &&
+ while( ((unsigned)nDirEntries < curFileHead.wResourceCount) &&
((curFileRes.bWidth != nWidth) || (curFileRes.bHeight != nHeight)))
{
cbRes = _lread( hFile, (LPSTR )&curFileRes, sizeof( CURFILERES));
lpDIB->bmiHeader.biBitCount)));
// Get a hDC so we can create a bitmap compatible with it
- hDC = CreateDC( "DISPLAY", NULL, NULL, NULL);
+ hDC = CreateDC( _T("DISPLAY"), NULL, NULL, NULL);
// 5) Create a device dependent bitmap with the XOR bits.
hbmXor = CreateBitmap( (int )lpDIB->bmiHeader.biWidth,
#if 0
// ******************************************************************
-BOOL fGetXPixmap( BOOL fIsIcon, char *szFileName, HINSTANCE hInst,
+BOOL fGetXPixmap( BOOL fIsIcon, wxChar *szFileName, HINSTANCE hInst,
char cData[], int &width, int &height)
{ HDC hdc,
hdcMemory;
DeleteObject(hXorBmp);
ReleaseDC(NULL, hDC);
#ifndef __WIN32__
+#ifdef STRICT
+ LocalUnlock(LocalHandle((void NEAR*) andBits));
+ LocalUnlock(LocalHandle((void NEAR*) xorBits));
+ LocalFree(LocalHandle((void NEAR*) andBits));
+ LocalFree(LocalHandle((void NEAR*) xorBits));
+#else
LocalUnlock(LocalHandle((WORD) andBits));
LocalUnlock(LocalHandle((WORD) xorBits));
LocalFree(LocalHandle((WORD) andBits));
LocalFree(LocalHandle((WORD) xorBits));
+#endif
#else
LocalUnlock(LocalHandle((LPCVOID) andBits));
LocalUnlock(LocalHandle((LPCVOID) xorBits));
DeleteObject(hXorBmp);
ReleaseDC((HWND) NULL, hDC);
#ifndef __WIN32__
+#ifdef STRICT
+ LocalUnlock(LocalHandle((void NEAR*) andBits));
+ LocalUnlock(LocalHandle((void NEAR*) xorBits));
+ LocalFree(LocalHandle((void NEAR*) andBits));
+ LocalFree(LocalHandle((void NEAR*) xorBits));
+#else
LocalUnlock(LocalHandle((WORD) andBits));
LocalUnlock(LocalHandle((WORD) xorBits));
LocalFree(LocalHandle((WORD) andBits));
LocalFree(LocalHandle((WORD) xorBits));
+#endif
#else
LocalUnlock(LocalHandle((LPCVOID) andBits));
LocalUnlock(LocalHandle((LPCVOID) xorBits));