Annotation of mstools/samples/playsnd/playsnd.c, revision 1.1.1.1

1.1       root        1: /*
                      2:     PlaySnd.c
                      3: 
                      4:     This is a PlaySnd Win32 app
                      5: 
                      6: */
                      7: 
                      8: #include <windows.h>
                      9: #include "PlaySnd.h"
                     10: 
                     11: /* useful global things */
                     12: 
                     13: HANDLE ghModule;                // global module handle
                     14: char szAppName[SIZEOFAPPNAME];  // app name
                     15: HWND ghwndMain;                 // handle of main window
                     16: BOOL bNoWait;
                     17: BOOL bSync;
                     18: BOOL bResourceID;
                     19: 
                     20: //
                     21: // local fns
                     22: //
                     23: 
                     24: void MyBeep(DWORD wParam);
                     25: 
                     26: /***************** Main entry point routine *************************/
                     27: 
                     28: int _CRTAPI1 main(int argc, char *argv[], char *envp[])
                     29: {
                     30:     MSG msg;
                     31:     HANDLE hAccTable;           /* handle to keyboard accelerator table */
                     32: 
                     33:     UNREFERENCED_PARAMETER(envp);
                     34: 
                     35:     if (argc > 1) {
                     36: 
                     37:         // assume that the first arg is a filename
                     38:                dprintf1("Calling PLAYSOUND to play %s", argv[1]);
                     39: 
                     40:                WinAssert(SND_ASYNC);
                     41: 
                     42:         PlaySound(argv[1], NULL, SND_SYNC | SND_FILENAME);
                     43:         return 0;
                     44:     }
                     45: 
                     46:     // try to init the main part of the app
                     47:     if (! InitApp()) {
                     48:                dprintf("Failed to initialise correctly");
                     49:         return 1;
                     50:     }
                     51: 
                     52:     /* load the keyboard accelerator table */
                     53: 
                     54:     hAccTable = LoadAccelerators(ghModule, MAKEINTRESOURCE(IDA_ACCTABLE)/*"AccTable" */);
                     55:     WinAssert(hAccTable);
                     56: 
                     57:     /* check for messages from Windows and process them */
                     58: 
                     59:     while (GetMessage(&msg, NULL, 0, 0)) {
                     60:         if (!TranslateAccelerator(ghwndMain, hAccTable, &msg)) {
                     61:             TranslateMessage(&msg);
                     62:             DispatchMessage(&msg);
                     63:         }
                     64:     }
                     65: 
                     66:     return 0;
                     67: }
                     68: 
                     69: /************* main window message handler ******************************/
                     70: 
                     71: int APIENTRY MainWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
                     72: {
                     73:     HMENU hMenu;
                     74:     PAINTSTRUCT ps;             /* paint structure */
                     75: 
                     76:     /* process any messages we want */
                     77: 
                     78:     switch(message) {
                     79:     case WM_CREATE:
                     80:         break;
                     81: 
                     82:     case WM_SIZE:
                     83:         break;
                     84: 
                     85:     case WM_INITMENUPOPUP:
                     86:         // show the option flag states
                     87:                dprintf("WM_INITMENUPOPUP %8x %8x %8x",hWnd, wParam, lParam);
                     88:         hMenu = GetMenu(hWnd);
                     89:         CheckMenuItem(hMenu, IDM_SYNC, bSync ? MF_CHECKED : MF_UNCHECKED);
                     90:         CheckMenuItem(hMenu, IDM_NOWAIT, bNoWait ? MF_CHECKED : MF_UNCHECKED);
                     91:         CheckMenuItem(hMenu, IDM_RESOURCEID, bResourceID ? MF_CHECKED : MF_UNCHECKED);
                     92: 
                     93: #ifdef MEDIA_DEBUG
                     94:                CheckMenuItem(hMenu, (__iDebugLevel + IDM_DEBUG0), MF_CHECKED);
                     95: #endif
                     96:         break;
                     97: 
                     98:     case WM_COMMAND:
                     99:         /* process menu messages */
                    100:         CommandMsg(hWnd, wParam);
                    101:         break;
                    102: 
                    103:     case WM_PAINT:
                    104:         BeginPaint(hWnd, &ps);
                    105:         EndPaint(hWnd, &ps);
                    106:         break;
                    107: 
                    108:     case WM_DESTROY:
                    109:         TerminateApp();
                    110:         PostQuitMessage(0);
                    111:         break;
                    112: 
                    113:     default:
                    114:         return DefWindowProc(hWnd, message, wParam, lParam);
                    115:         break;
                    116:     }
                    117:     return 0;
                    118: }
                    119: 
                    120: void CommandMsg(HWND hWnd, DWORD wParam)
                    121: {
                    122:     /* process any WM_COMMAND messages we want */
                    123: 
                    124:     switch (wParam) {
                    125:     case IDM_PLAYFILE:
                    126:         PlayFile();
                    127:         break;
                    128: 
                    129:     case IDM_SOUNDS:
                    130:         Sounds(hWnd);
                    131:         break;
                    132: 
                    133:     case IDM_DING:
                    134:     case IDM_SIREN:
                    135:     case IDM_LASER:
                    136:         Resource(wParam);
                    137:         break;
                    138: 
                    139:     case IDM_ICONHAND:
                    140:     case IDM_ICONQUESTION:
                    141:     case IDM_ICONEXCLAMATION:
                    142:     case IDM_ICONASTERISK:
                    143:     case IDM_SYNC_ICONHAND:
                    144:     case IDM_SYNC_ICONQUESTION:
                    145:     case IDM_SYNC_ICONEXCLAMATION:
                    146:     case IDM_SYNC_ICONASTERISK:
                    147:         MyBeep(wParam);
                    148:         break;
                    149: 
                    150:     case IDM_RESOURCEID:
                    151:         bResourceID = !bResourceID;
                    152:         break;
                    153: 
                    154:     case IDM_SYNC:
                    155:         bSync = !bSync;
                    156:         break;
                    157: 
                    158:     case IDM_NOWAIT:
                    159:         bNoWait = !bNoWait;
                    160:         break;
                    161: 
                    162:     case IDM_ABOUT:
                    163:         About(hWnd);
                    164:         break;
                    165: 
                    166:     case IDM_HELP_INDEX:
                    167:     case IDM_HELP_KEYBOARD:
                    168:     case IDM_HELP_HELP:
                    169:         Help(hWnd, wParam);
                    170:         break;
                    171: 
                    172: #ifdef MEDIA_DEBUG
                    173:     case IDM_DEBUG0:
                    174:     case IDM_DEBUG1:
                    175:     case IDM_DEBUG2:
                    176:     case IDM_DEBUG3:
                    177:     case IDM_DEBUG4:
                    178:         dDbgSetDebugMenuLevel((int)(wParam - IDM_DEBUG0));
                    179:         break;
                    180: #endif
                    181: 
                    182:     case IDM_EXIT:
                    183:         PostMessage(hWnd, WM_CLOSE, 0, 0l);
                    184:         break;
                    185: 
                    186:     default:
                    187:         break;
                    188:     }
                    189: }
                    190: 
                    191: void MyBeep(DWORD wParam)
                    192: {
                    193:     DWORD dwFlags = MB_OK;
                    194:        LPSTR lpstr = NULL;
                    195: 
                    196:     switch (wParam) {
                    197:     case IDM_SYNC_ICONHAND:
                    198:     case IDM_SYNC_ICONQUESTION:
                    199:     case IDM_SYNC_ICONEXCLAMATION:
                    200:     case IDM_SYNC_ICONASTERISK:
                    201:         dwFlags |= MB_TASKMODAL;
                    202:         break;
                    203:     }
                    204: 
                    205:     switch (wParam) {
                    206:     case IDM_ICONHAND:
                    207:     case IDM_SYNC_ICONHAND:
                    208:         dwFlags |= MB_ICONHAND;
                    209:         lpstr =  "MB_ICONHAND";
                    210:         break;
                    211: 
                    212:     case IDM_ICONQUESTION:
                    213:     case IDM_SYNC_ICONQUESTION:
                    214:         dwFlags |= MB_ICONQUESTION;
                    215:         lpstr =  "MB_ICONQUESTION";
                    216:         break;
                    217: 
                    218:     case IDM_ICONEXCLAMATION:
                    219:     case IDM_SYNC_ICONEXCLAMATION:
                    220:         dwFlags |= MB_ICONEXCLAMATION;
                    221:         lpstr = "MB_ICONEXCLAMATION";
                    222:         break;
                    223: 
                    224:     case IDM_ICONASTERISK:
                    225:     case IDM_SYNC_ICONASTERISK:
                    226:         dwFlags |= MB_ICONASTERISK;
                    227:         lpstr = "MB_ICONASTERISK";
                    228:         break;
                    229: 
                    230:     default:
                    231:         break;
                    232: 
                    233:     }
                    234:        if (lpstr) {
                    235:                dprintf2("Calling Message beep with flags %8x  Type %s", dwFlags, lpstr);
                    236:         MessageBeep((UINT)dwFlags);
                    237:                dprintf2("Now calling MessageBox");
                    238:         MessageBox(ghwndMain, lpstr, szAppName, (UINT)dwFlags);
                    239:        }
                    240: }

unix.superglobalmegacorp.com

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