SAMPLE: Handling Callbacks with C++ Member Functions

Last reviewed: February 15, 1996
Article ID: Q92433
The information in this article applies to:
  • Microsoft Windows Software Development Kit (SDK) for Windows, version 3.1

The CALLB application demonstrates how to handle callbacks with C++ member functions. It is a companion application for the technical article on the MSDN, "Calling All Members: Member Functions as Callbacks."

Microsoft Windows version 3.1 has over 30 callback functions that applications can use to enumerate objects, hook into the hardware, and perform a variety of other activities. The article explains why normal member functions cannot be used as callback functions and gives several techniques for handling callbacks. The article and source code are targeted toward Microsoft C/C++ version 7.0, but the ideas presented apply to all C++ compilers, including those by Borland and Zortech.

CALLB contains eight makefiles that create six executables: MAKE1 creates CPROG1; MAKE2 generates a compile-time error and does not create an executable; MAKE3, MAKE4, MAKE5, and MAKE6 create CPROG3, CPROG4, CPROG5, and CPROG6, respectively; and TMAKE creates CTIMER. Please refer to "Calling All Members: Member Functions as Callbacks" for more information.

NOTE: Running CPROG1 generates a general protection (GP) fault by design.

CALLB was built and tested under Microsoft Windows version 3.1.

Download CALLB.EXE, a self-extracting file, from the Microsoft Software Library (MSL) on the following services:

  • Microsoft Download Service (MSDL)

          Dial (206) 936-6735 to connect to MSDL
          Download CALLB.EXE (size: 583070 bytes) 
    
  • Internet (anonymous FTP)

          ftp ftp.microsoft.com
          Change to the \SOFTLIB\MSLFILES directory
          Get CALLB.EXE (size: 583070 bytes) 
    


Additional reference words: 3.10 EnumObjects EnumObjectsProc softlib
CALLB.EXE
KBCategory: kbtool kbfile
KBSubcategory: TlsMisc


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: February 15, 1996
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.