The problem with the missing decalration of CURSORINFO is the value of
WINVER.  WINVER (for compatibility with NT) is defined as 0x0400.  But
the support for GetCursorInfo() was not added until NT4 SP5 and
therefore it requires a WINVER value of 0x0500 in order to be used.

  #define WINVER 0x0500 

must be added before the 

  #include <openssl/rand.h>

because rand.h includes 

  #include <windows.h>

When WINVER is defined as 0x0500 you get the following warning:

  NOTE: WINVER has been defined as 0x0500 or greater which enables
  Windows 2000 features.

  Caution: When building applications with WINVER set to 0x0500
  or greater, the resulting binary may not run as expected
  on earlier platforms, such Windows NT 4.0 or Windows 95 & Windows 98

  See the Platform SDK release notes for more information.

It seems to me that since we are loading the function dynamicly and
not relying on other Win2000 features; and since we want the code to
work reliably on Win9x and NT4; instead of changing the value of
WINVER we should simply use the wrokaround I described yesterday and 
place 

#ifndef CURSOR_SHOWING
/*
 * Information about the global cursor.
 */
typedef struct tagCURSORINFO
{
    DWORD   cbSize;
    DWORD   flags;
    HCURSOR hCursor;
    POINT   ptScreenPos;
} CURSORINFO, *PCURSORINFO, *LPCURSORINFO;

#define CURSOR_SHOWING     0x00000001
#endif /* CURSOR_SHOWING */

in the file after the declaration of prototypes for readtimer() and
readscreen().


                  Jeffrey Altman * Sr.Software Designer
                 The Kermit Project * Columbia University
               612 West 115th St * New York, NY * 10025 * USA
     http://www.kermit-project.org/ * [EMAIL PROTECTED]


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to