SpiInstallProtocol - Example Code

The following code illustrates how to install or remove a specific stream protocol for a stream handler.

#include        "os2.h"
#include        "os2me.h"

  ULONG         ulRC;                       /* Error return code   */
  HID           hidTarget;                  /* Target handler ID   */
  SPCBKEY       spcbkey;                    /* Data type to stream */
  SPCB          spcb;
                            .
                            .
                            .
/*-------------------------------------------------------------------*/
/* Get the stream handler ID (hidSource) for the file stream handler */
/* using SpiGetHandler.                                              */
/*-------------------------------------------------------------------*/
                            .
                            .
                            .
/*--------------------------------------------------------------------*/
/*  Get the stream protocol control block (SPCB) for the given stream */
/*  handler and SPCB key.                                             */
/*--------------------------------------------------------------------*/
  spcbkey.ulDataType = DATATYPE_WAVEFORM;
  spcbkey.ulDataSubType = WAVE_FORMAT_4S16;
  spcbkey.ulIntKey = 0;

  if (ulRC = SpiGetProtocol( hidTarget, &spcbkey, &spcb))
     return(ulRC);                               /* Error! */
                            .
                            .
                            .

/*----------------------------------------------------------------*/
/*  Install a stream protocol control block (SPCB) for the given  */
/*   handler and SPCB key.                                        */
/*----------------------------------------------------------------*/
  spcbkey.ulIntKey = 1;     /* Must be a unique number (non-zero) */
  spcb.spcbkey.ulIntkey = 1;/* Ensure that the keys match.        */
  spcb.ulMaxBuf = 5;        /* Change number of stream buffers.   */
  spcb.ulBufSize = 32768;   /* Change size of buffers.            */

  if (ulRC = SpiInstallProtocol( hidTarget,
                               &spcbkey,
                               &spcb,
                               SPI_INSTALL_PROTOCOL))
     return(ulRC);                               /* Error! */


[Back: SpiInstallProtocol - Related Messages]
[Next: SpiInstallProtocol - Topics]