All information in the Vfs tree is reached using a PATH. The path is comprised of a NULL terminated array of VfsPathElement items (currently AECHAR*). Each VfsPathElement represents a single 'level' or 'depth' of the entire Vfs tree.
The simplest way to implement data handlers in the Vfs tree is to use the 'standard' vfs nodes, available via the IActorContext interface. These standard nodes implement a single node, which may be a container (or parent) of further nodes.
It is also possible, by implementing the entire IVfsNode interface yourself, to create Vfs entries that handle entire path sequences, rather than just the single level supported by the standard nodes.
int IVFSNODE_GetData( IVfsNode * node, VfsPath path, AEECLSID * pType, void * pBuf, int * pSize )
SUCCESS - the call has been completed successfully. ENOSUCH - the node specified by the path cannot be found. ENEEDMORE - The data type or size has been corrected by the call. EBUFFERTOOSMALL - the buffer supplied is too small to copy out the data. EMEMPTR - the buffer supplied is NULL. EBADPARM - the buffer supplied is badly aligned for the type of data. EBADITEM - it is not possible to read data from this node.
Other errors may be returned by node models.
- Nodes may be created (by IVfsCacheContainers) in order to satisfy this request. The interface returned by an interface node is AddRef()ed before being returned. It is the responsibility of the caller to IBase_Release() the interface after use.