| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# csutil/scf_interface.h File Reference

Crystal Space Shared Class Facility (SCF) - interface creation support. More...

`#include "csextern.h"`
`#include "csutil/compileassert.h"`
`#include "csutil/typetraits.h"`

Go to the source code of this file.

## Classes
struct | iBase
| This is the basic interface: all other interfaces should be derived from this one, this will allow us to always use at least some minimal functionality given any interface pointer. More...
struct | iSCF
| iSCF is the interface that allows using SCF functions from shared classes. More...
class | scfInterfaceTraits< Interface >
| Interface information query class. More...
## Defines
#define | SCF_CONSTRUCT_VERSION(Major, Minor, Micro) ((Major << 24) | (Minor << 16) | Micro)
| Use this macro to construct interface version numbers.
#define | SCF_INTERFACE(Name, Major, Minor, Micro)
| SCF_INTERFACE can be used to define an interface's version number; you should specify interface name and major, minor and micro version components.
#define | SCF_VERSION(Name, Major, Minor, Micro)
| FOR COMPATIBILITY! SCF_VERSION can be used to define an interface's version number; you should specify interface name and major, minor and micro version components.
## Typedefs
typedef iBase *(*) | scfFactoryFunc (iBase *)
| Type of factory function which creates an instance of an SCF class.
typedef unsigned long | scfInterfaceID
| Type of registered interface handle used by iBase::QueryInterface().
typedef int | scfInterfaceVersion
| Type of interface version used by iBase::QueryInterface().
## Functions
static bool | scfCompatibleVersion (scfInterfaceVersion iVersion, scfInterfaceVersion iItfVersion)
| This function checks whenever an interface is compatible with given version.

## Detailed Description

Crystal Space Shared Class Facility (SCF) - interface creation support.

Definition in file scf_interface.h.