int SampWrite( void FAR_PTR *buff, unsigned len ) { unsigned written; int handle; int rc; _fstrcpy( SampName, SharedMemory->SampName ); if( SharedMemory->SampleHandle == 0 ) { handle = SysCreate( SampName ); SharedMemory->SampleHandle = 1; } else { handle = SysOpen( SampName ); if( handle >= 0 ) SysSeek( handle, SharedMemory->SampOffset ); } if( handle == -1 ) { SharedMemory->FarWriteProblem = 1; return( -1 ); } written = SysWrite( handle, buff, len ); if( written == len ) { SharedMemory->SampOffset += len; rc = 0; } else { SysSeek( handle, SharedMemory->SampOffset ); SysWrite( handle, "", 0 ); SharedMemory->FarWriteProblem = 1; rc = -1; } SysClose( handle ); return( rc ); } /* SampWrite */
int SampCreate( char *name ) { SampOffset = 0; SampIsDOS = FALSE; if( DOSPresent() ) { SampIsDOS = ( name[0] != '\0' && name[ 1 ] == ':' ); } if( SampIsDOS ) { return( DOSCreate( name, &SampleHandle ) ); } else { SampleHandle = SysCreate( name ); return( SampleHandle == -1 ); } }