Annotation of mstools/win32s/ut/samples/utsample/utsamp.c, revision 1.1.1.1

1.1       root        1: /********************************************************************\
                      2: *  UTSamp.c -- Sample program demonstrating Universal Thunks under   *
                      3: *              Win32s, including calling APIs unsupported by         *
                      4: *              Win32s.                                               *
                      5: *                                                                    *
                      6: *  Lee Hart                                                          *
                      7: *  Microsoft Developer Support                                       *
                      8: *  Copyright (c) 1993 Microsoft Corporation                          *
                      9: *                                                                    *
                     10: *  Comments:                                                         *
                     11: *   Shows how to use Universal Thunks to call APIs that are not      *
                     12: *   available normally in Win32s.                                    *
                     13: *                                                                    *
                     14: *  Functions:                                                        *
                     15: *                                                                    *
                     16: *  WinMain()         - Initializes Application                       *
                     17: *  MainWndProc()     - Processes Application Messages                *
                     18: *  AboutDlgProc()    - Processes "About" Dialog Box Messages         *
                     19: *                                                                    *
                     20: *                                                                    *
                     21: \********************************************************************/
                     22: 
                     23: 
                     24: /*********************  Header Files  *********************/
                     25: 
                     26: #include <windows.h>
                     27: #include "utsamp.h"
                     28: 
                     29: /**********************  Prototypes  **********************/
                     30: 
                     31: LRESULT CALLBACK MainWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
                     32: LRESULT CALLBACK AboutDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
                     33: 
                     34: /*******************  Global Variables  *******************/
                     35: 
                     36: HANDLE ghInstance;
                     37: 
                     38: /********************************************************************\
                     39: *  Function: int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)    *
                     40: *                                                                    *
                     41: *   Purpose: Initializes Application, sets up Universal Thunk if     *
                     42: *     running under Win32s (as determined by the high but of         *
                     43: *     GetVersion().                                                  *
                     44: *                                                                    *
                     45: \********************************************************************/
                     46: 
                     47: 
                     48: int WINAPI WinMain( HINSTANCE hInstance,
                     49:                     HINSTANCE hPrevInstance,
                     50:                     LPSTR lpszCmdLine,
                     51:                     int nCmdShow )
                     52:  {
                     53:   WNDCLASS wc;
                     54:   MSG msg;
                     55:   HWND hWnd;
                     56: 
                     57:   if( !hPrevInstance )
                     58:    {
                     59:     wc.lpszClassName = "UTSampClass";
                     60:     wc.lpfnWndProc = MainWndProc;
                     61:     wc.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW;
                     62:     wc.hInstance = hInstance;
                     63:     wc.hIcon = LoadIcon( hInstance, "UTSampIcon" );
                     64:     wc.hCursor = LoadCursor( NULL, IDC_ARROW );
                     65:     wc.hbrBackground = (HBRUSH)( COLOR_WINDOW+1 );
                     66:     wc.lpszMenuName = "UTSampMenu";
                     67:     wc.cbClsExtra = 0;
                     68:     wc.cbWndExtra = 0;
                     69: 
                     70:     RegisterClass( &wc );
                     71:    }
                     72: 
                     73:   ghInstance = hInstance;
                     74: 
                     75:   hWnd = CreateWindow( "UTSampClass",
                     76:                        "Universal Thunks Sample",
                     77:                        WS_OVERLAPPEDWINDOW,
                     78:                        0,
                     79:                        0,
                     80:                        CW_USEDEFAULT,
                     81:                        CW_USEDEFAULT,
                     82:                        NULL,
                     83:                        NULL,
                     84:                        hInstance,
                     85:                        NULL);
                     86: 
                     87:   ShowWindow( hWnd, nCmdShow );
                     88: 
                     89:   while( GetMessage( &msg, NULL, 0, 0 ) )
                     90:    {
                     91:     TranslateMessage( &msg );
                     92:     DispatchMessage( &msg );
                     93:    }
                     94: 
                     95:   return msg.wParam;
                     96:  }
                     97: 
                     98: 
                     99: /********************************************************************\
                    100: * Function: LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM) *
                    101: *                                                                    *
                    102: *  Purpose: Processes Application Messages                           *
                    103: *                                                                    *
                    104: * Comments: The following messages are processed                     *
                    105: *                                                                    *
                    106: *           WM_COMMAND                                               *
                    107: *           WM_DESTROY                                               *
                    108: *                                                                    *
                    109: *                                                                    *
                    110: \********************************************************************/
                    111: 
                    112: 
                    113: LRESULT CALLBACK MainWndProc( HWND hWnd,
                    114:                               UINT msg,
                    115:                               WPARAM wParam,
                    116:                               LPARAM lParam )
                    117:  {
                    118:   switch( msg )
                    119:    {
                    120: 
                    121: /********************************************************************\
                    122: *     WM_COMMAND: Handle menu selections for Exit, GetFreeSpace,     *
                    123: *        WNetGetUser, and Help About                                 *
                    124: \********************************************************************/
                    125: 
                    126:     case WM_COMMAND:
                    127:       switch( wParam )
                    128:        {
                    129:         case IDM_EXIT:
                    130:           SendMessage( hWnd, WM_CLOSE, 0, 0 );
                    131:           break;
                    132: 
                    133:         case IDM_GETUSER:
                    134:          {
                    135:           CHAR buf1[255], buf2[255];
                    136:           UINT bufsize = 255;
                    137: 
                    138:           MyWNetGetUser( NULL, buf1, &bufsize );
                    139:           wsprintf( buf2, "WNetGetUser(...) = %s", buf1 );
                    140:           MessageBox( hWnd, buf2, "Win32s UT Sample - WNetGetUser", MB_OK );
                    141:          }
                    142:           break;
                    143: 
                    144:         case IDM_GETMEM:
                    145:          {
                    146:           CHAR buf[255];
                    147: 
                    148:           wsprintf(buf,"GetFreeSpace(0) = %d",MyGetFreeSpace());
                    149: 
                    150:           MessageBox(hWnd, buf,"Win32s UT Sample - GetFreeSpace",MB_OK);
                    151:          }
                    152:          break;
                    153: 
                    154:         case IDM_ABOUT:
                    155:           DialogBox( ghInstance,
                    156:                      "AboutDlg",
                    157:                      hWnd,
                    158:                      (DLGPROC) AboutDlgProc );
                    159:           break;
                    160:        }
                    161:       break;
                    162: 
                    163: /**************************************************************\
                    164: *     WM_DESTROY: PostQuitMessage() is called                  *
                    165: \**************************************************************/
                    166: 
                    167:     case WM_DESTROY:
                    168:       PostQuitMessage( 0 );
                    169:       break;
                    170: 
                    171: /**************************************************************\
                    172: *     Let the default window proc handle all other messages    *
                    173: \**************************************************************/
                    174: 
                    175:     default:
                    176:       return( DefWindowProc( hWnd, msg, wParam, lParam ) );
                    177:    }
                    178: 
                    179:   return 0;
                    180:  }
                    181: 
                    182: /********************************************************************\
                    183: * Function: LRESULT CALLBACK AboutDlgProc(HWND, UINT, WPARAM, LPARAM)*
                    184: *                                                                    *
                    185: *  Purpose: Processes "About" Dialog Box Messages                    *
                    186: *                                                                    *
                    187: * Comments: The Dialog Box is displayed when the user selects        *
                    188: *           Help.About.  The following messages are processed:       *
                    189: *                                                                    *
                    190: *           WM_INITDIALOG                                            *
                    191: *           WM_COMMAND                                               *
                    192: *                                                                    *
                    193: \********************************************************************/
                    194: 
                    195: 
                    196: LRESULT CALLBACK AboutDlgProc( HWND hDlg,
                    197:                                UINT uMsg,
                    198:                                WPARAM wParam,
                    199:                                LPARAM lParam )
                    200:  {
                    201:   switch( uMsg )
                    202:    {
                    203:     case WM_INITDIALOG:
                    204:       return TRUE;
                    205: 
                    206:     case WM_COMMAND:
                    207:       switch( wParam )
                    208:        {
                    209:         case IDOK:
                    210:           EndDialog( hDlg, TRUE );
                    211:           return TRUE;
                    212:        }
                    213:       break;
                    214:    }
                    215: 
                    216:   return FALSE;
                    217:  }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.