The following code illustrates how to register a stream handler with the Sync/Stream Manager.
#include "os2.h"
#include "os2me.h"
#define RegName "C:\PATH\TESTSH" /* Handler name and path */
ULONG ulRC; /* Error return code */
HID hidSource, /* Source handler ID */
hidTarget; /* Target handler ID */
PARM_REG parm_reg; /* Register parameter block */
PSMHFN SMHEntryPoint; /* Pointer to SMH entry point */
/*--------------------------------------------------------------------------*/
/* Register a stream handler as both source and target. */
/*--------------------------------------------------------------------------*/
parm_reg.ulFunction = SMH_REGISTER; /* Set function. */
parm_reg.pszSHName = (PSZ) RegName; /* Set handler name. */
parm_reg.phidSrc = &hidMSrc; /* Returns source hid. */
parm_reg.phidTgt = &hidMTgt; /* Returns target hid. */
parm_reg.ulFlags = REGISTER_TGT_HNDLR | REGISTER_SRC_HNDLR;
/* Register as a source
and target stream handler. */
parm_reg.pshcfnEntry = (PSHCFN) main; /* Entry point address. */
if (ulRC = SMHEntryPoint (&parm_reg))
return(ulRC); /* Error! */