# CallFolio

Invokes from the folio vector table a folio procedure that doesn't return a value.

### Synopsis

`void CallFolio( const Folio *folio, int32 func, args )`

### Description

This macro allows a task to invoke a folio procedure directly from the folio vector table, thereby bypassing the normal procedure interface. It can be used only for folio procedures that do not return a value. (To invoke a folio procedure that does return a value, use `CallFolioRet()`.) This approach, which is slightly faster than invoking the procedure through the normal interface, is intended for use by the folios themselves, but it can be also be used by applications.

Note: Most tasks should invoke folio procedures in the normal way, using the interfaces described in this manual. Only tasks that require the utmost in speed and efficiency should invoke folio procedures directly from the vector table.

Example of AddTail(listP, nodeP) using CallFolio: CallFolio(KernelBase, KBV_ADDTAIL, (listP, nodeP));

### Arguments

folio
  A pointer to the folio item that contains the procedure. Use LookupItem() to get this pointer. For the item number of a folio (which you pass to LookupItem() see the Portfolio Items chapter or call FindAndOpenFolio().

func
  The index of the vector table entry for the procedure. This index (which is always a negative integer, because the table grows backward in memory) is listed in the header file for the folio that contains the procedure.

args
  The arguments for the procedure, separated by commas and enclosed within parentheses.

### Implementation

Macro implemented in folio.h V20.

### Associated Files

folio.h

### See Also

``CallFolioRet`()`

#