home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / win_lrn / sound / setsndns.c < prev    next >
C/C++ Source or Header  |  1988-08-10  |  3KB  |  95 lines

  1. /*
  2.  *  SetSoundNoise
  3.  *  setsndns
  4.  *
  5.  *  SetSoundNoise(nSource, nDuration) sets the source and duration of a
  6.  *  noise in the noise hardware of the play device.  nSource is a short
  7.  *  integer specifying the noise source.  nDuration is a short integer value
  8.  *  specifying the duration of the noise in clock tics.
  9.  *
  10.  *  This program demonstrates the use of the function SetSoundNoise.
  11.  *  As shown below, OpenSound must be invoked before SetSoundNoise can
  12.  *  be called.    SetSoundNoise(nSource, nDuration) returns zero if the
  13.  *  function is successful.  If the source is invalid, it returns S_SERDSR.
  14.  *
  15.  */
  16.  
  17. #include "windows.h"
  18.  
  19. /* Procedure called when the application is loaded for the first time */
  20. BOOL WinInit( hInstance )
  21. HANDLE hInstance;
  22. {
  23.     PWNDCLASS   pClass;
  24.  
  25.     pClass = (PWNDCLASS)LocalAlloc( LPTR, sizeof(WNDCLASS) );
  26.  
  27.     /* registering the parent window class */
  28.     pClass->hCursor        = LoadCursor( NULL, IDC_ARROW );
  29.     pClass->lpszMenuName   = (LPSTR)NULL;
  30.     pClass->lpszClassName  = (LPSTR)"Window";
  31.     pClass->hbrBackground  = (HBRUSH)GetStockObject( WHITE_BRUSH );
  32.     pClass->hInstance      = hInstance;
  33.     pClass->style          = CS_HREDRAW | CS_VREDRAW;
  34.     pClass->lpfnWndProc    = DefWindowProc;
  35.  
  36.     if (!RegisterClass( (LPWNDCLASS)pClass ) )
  37.         /* Initialization failed.
  38.          * Windows will automatically deallocate all allocated memory.
  39.          */
  40.         return FALSE;
  41.  
  42.     LocalFree( (HANDLE) pClass );
  43.     return TRUE;        /* Initialization succeeded */
  44. }
  45.  
  46. int PASCAL WinMain( hInstance, hPrevInstance, lpszCmdLine, cmdShow )
  47. HANDLE hInstance, hPrevInstance;
  48. LPSTR lpszCmdLine;
  49. int cmdShow;
  50. {
  51.     HWND  hWnd;      /* Handle to the parent window */
  52.     short nResult;   /* Contains return value for SetSoundNoise function */
  53.  
  54.     WinInit (hInstance);
  55.  
  56.     hWnd = CreateWindow((LPSTR)"Window",
  57.             (LPSTR)"SetSoundNoise",
  58.                         WS_TILEDWINDOW,
  59.                         20,20,400,200,
  60.                         (HWND)NULL,        /* no parent */
  61.                         (HMENU)NULL,       /* use class menu */
  62.                         (HANDLE)hInstance, /* handle to window instance */
  63.                         (LPSTR)NULL        /* no params to pass on */
  64.                        );
  65.  
  66.     /* Make window visible according to the way the application is activated */
  67.     ShowWindow( hWnd, cmdShow );
  68.     UpdateWindow( hWnd );
  69.  
  70.     OpenSound ();   /* Must open access to the play device before
  71.              * SetSoundNoise can be invoked */
  72.  
  73.     /*********************************************************************/
  74.     /* S_PERIOD512 is the noise source (high pitch hiss).  3000 is the
  75.      * duration of the noise in clock tics. */
  76.  
  77.     nResult = SetSoundNoise(S_PERIOD512,3000); /* nResult = 0 if successful */
  78.  
  79.     /*********************************************************************/
  80.  
  81.     CloseSound();   /* Close access to play device */
  82.  
  83.     /* return code for SetSoundNoise routine */
  84.  
  85.     if (nResult==0)
  86.     MessageBox (hWnd, (LPSTR)"SetSoundNoise worked",
  87.            (LPSTR)"Done", MB_OK);
  88.  
  89.     else if (nResult == S_SERDSR)
  90.     MessageBox (hWnd, (LPSTR)"The noise source parameter is invalid",
  91.            (LPSTR)NULL, MB_OK);
  92.  
  93.     return 0;
  94. }
  95.