Constructs a polygon that is the locus of points at a distance less than or equal to a specified distance from this geometry.
[Visual Basic 6.0] Function Buffer(
ByVal distance As Double _
) As IGeometry
[Visual Basic .NET] Public Function Buffer ( _ ByVal distance As Double _ ) As IGeometry
[C#] public IGeometry Buffer ( double distance );
[Java] public IGeometry buffer ( double distance ) throws IOException, AutomationException
[C++] HRESULT Buffer( double distance, IGeometry** outBuffer );
Parameters
distance
distance is a parameter of type double
outBuffer [out, retval]
outBuffer is a parameter of type IGeometry
The buffer distance is a double number in the same units as the source shape that is being buffered.
Note : A negative distance can be specified to produce a buffer inside the original polygon. This cannot be used with polyline. ITopologicalOperator methods must be applied on high-level geometries only. High-Level geometries are point, multipoint, polyline and polygon. To use it with low-level geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), path or ring they must be wrapped into high-level geometries type.

'How to wrap a line segment into a polyline in VB6
'Assume a line (pLine as ILine) is already created
dim psc as ISegmentCollection
set psc = New Polyline
psc.addsegment pline
'Set the spatial reference on the new polyline
'The spatial reference is not transfered automatically from the segments
dim pgeo as IGeometry
set pgeo = psc
set pgeo.SpatialReference = pMyspatialReference
'Can now be used with ITopologicalOperator methods