### Accessing Graphic State

Member functions allow you to access graphic state.

enum EMatrixKind { kView, kModel };
const IGrafMatrix* matrix (EMatrixKind) const;
const IGArea* clipArea () const;
const IAttributeState* attributes () const;

This function returns the device type as a string. For a given IGrafPort, you can determine what kind of device the IGrafPort encapsulates.

const IString* portType () const;

The constructors are protected because IGrafPort is an abstract base class.

protected:
IGrafPort ();

The functions useState and doneWithState are to be used for concurrency model of IGrafPort implementation. The subclass can override these methods to implement multi-thread safe IGrafPort.

virtual void useState () const = 0;
virtual void doneWithState () const = 0;