Annotation of mstools/win32s/ut/samples/utsample/utsamp.c, revision 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.