Annotation of mstools/samples/playsnd/playsnd.c, revision 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.