_Using Velocis Extension Modules_ by Walter Carlisle Listing One USHORT EXPENTRY VelSetOfflineQueued( RDM_SESS rsSession, RDM_DB rdDbHandle, short hEM, PSZ pszProductionDate, SHORT *sErrorCode ) { PDPLDATADESC inParm; PDPLDATADESC outParm; short stat ; RDM_SESS rsServerSession ; RDM_DB rdServerHandle ; *sErrorCode = S_UNAVAIL ; while ( *sErrorCode == S_UNAVAIL ) { inParm = rpc_allocParmList( 3 ) ; rpc_initParmList( inParm ) ; rsServerSession = rpc_remoteSess(rsSession); *sErrorCode = rpc_putParm(inParm,DPL_DT_U_SHORT,&rsServerSession,0); if ( *sErrorCode != S_OKAY ) { return FALSE ; } rdServerHandle = rpc_remoteDb(rdDbHandle); *sErrorCode = rpc_putParm(inParm,DPL_DT_U_LONG,&rdServerHandle,0); if ( *sErrorCode != S_OKAY ) { return FALSE ; } *sErrorCode = rpc_putParm( inParm, DPL_DT_CHAR | DPL_DT_MOD_ARRAY, (void *)pszProductionDate, SIZEOF_WORKORDER_REALPRODDATE ) ; if ( *sErrorCode != S_OKAY ) { return FALSE ; } stat = rpc_emCall( hEM, SD_SET_OFFLINE_QUEUED, inParm, &outParm, sErrorCode, rsSession ) ; if ( stat != S_OKAY ) { *sErrorCode = stat ; return FALSE ; } rpc_freeParmList( outParm ) ; rpc_freeParmList( inParm ) ; } return TRUE ; } Listing Two RPC_FUNCTION_BEGIN1( Advertiser, Create, STRUCT(Advertiser, pAdvertiser) ) #if (RPC_TYPE == RPC_SERVER) IFSTAT( d_trbegin( "xact", ctx->hSess ) ) IFSTAT( d_rtlock( ADVERTISER, "w", ctx->hDB ) ) IFSTAT( d_fillnew( ADVERTISER, pAdvertiser, ctx->hDB) ) END_XACTION #endif RPC_FUNCTION_END Listing Three int Advertiser_Read( StructArray * Advertisers, const char *TitleID, short hContext );