# plugin.h File Reference

`#include <gwenhywfar/inherit.h>`
`#include <gwenhywfar/libloader.h>`
`#include <gwenhywfar/plugindescr.h>`

Go to the source code of this file.

## Typedefs

typedef GWEN_PLUGIN | GWEN_PLUGIN
typedef GWEN_PLUGIN *(* | GWEN_PLUGIN_FACTORYFN )(GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName)
typedef GWEN_PLUGIN_MANAGER | GWEN_PLUGIN_MANAGER

## Functions

GWENHYWFAR_API void | GWEN_Plugin_free (GWEN_PLUGIN *p)
GWENHYWFAR_API const char * | GWEN_Plugin_GetFileName (const GWEN_PLUGIN *p)
GWENHYWFAR_API GWEN_LIBLOADER * | GWEN_Plugin_GetLibLoader (const GWEN_PLUGIN *p)
GWENHYWFAR_API GWEN_PLUGIN_MANAGER * | GWEN_Plugin_GetManager (const GWEN_PLUGIN *p)
GWENHYWFAR_API const char * | GWEN_Plugin_GetName (const GWEN_PLUGIN *p)
GWENHYWFAR_API GWEN_PLUGIN * | GWEN_Plugin_new (GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName)
GWENHYWFAR_API int | GWEN_PluginManager_AddPath (GWEN_PLUGIN_MANAGER *pm, const char *s)
GWENHYWFAR_API int | GWEN_PluginManager_AddPathFromWinReg (GWEN_PLUGIN_MANAGER *pm, const char *keypath, const char *varname)
GWENHYWFAR_API GWEN_PLUGIN_MANAGER * | GWEN_PluginManager_FindPluginManager (const char *s)
GWENHYWFAR_API void | GWEN_PluginManager_free (GWEN_PLUGIN_MANAGER *pm)
GWENHYWFAR_API const char * | GWEN_PluginManager_GetName (const GWEN_PLUGIN_MANAGER *pm)
GWENHYWFAR_API const GWEN_STRINGLIST * | GWEN_PluginManager_GetPaths (const GWEN_PLUGIN_MANAGER *pm)
GWENHYWFAR_API GWEN_PLUGIN * | GWEN_PluginManager_GetPlugin (GWEN_PLUGIN_MANAGER *pm, const char *s)
GWENHYWFAR_API GWEN_PLUGIN_DESCRIPTION_LIST2 * | GWEN_PluginManager_GetPluginDescrs (GWEN_PLUGIN_MANAGER *pm)
GWENHYWFAR_API GWEN_PLUGIN * | GWEN_PluginManager_LoadPlugin (GWEN_PLUGIN_MANAGER *pm, const char *modName)
GWENHYWFAR_API GWEN_PLUGIN * | GWEN_PluginManager_LoadPluginFile (GWEN_PLUGIN_MANAGER *pm, const char *modName, const char *fname)
GWENHYWFAR_API GWEN_PLUGIN_MANAGER * | GWEN_PluginManager_new (const char *name)
GWENHYWFAR_API int | GWEN_PluginManager_Register (GWEN_PLUGIN_MANAGER *pm)
GWENHYWFAR_API int | GWEN_PluginManager_Unregister (GWEN_PLUGIN_MANAGER *pm)

## Typedef Documentation

typedef struct GWEN_PLUGIN GWEN_PLUGIN

typedef GWEN_PLUGIN*(* GWEN_PLUGIN_FACTORYFN)(GWEN_PLUGIN_MANAGER *pm, const char *name, const char *fileName)

typedef struct GWEN_PLUGIN_MANAGER GWEN_PLUGIN_MANAGER

## Function Documentation

GWENHYWFAR_API void GWEN_Plugin_free | ( | GWEN_PLUGIN * | p | ) |

GWENHYWFAR_API const char* GWEN_Plugin_GetFileName | ( | const GWEN_PLUGIN * | p | ) |

GWENHYWFAR_API GWEN_LIBLOADER* GWEN_Plugin_GetLibLoader | ( | const GWEN_PLUGIN * | p | ) |

GWENHYWFAR_API GWEN_PLUGIN_MANAGER* GWEN_Plugin_GetManager | ( | const GWEN_PLUGIN * | p | ) |

GWENHYWFAR_API const char* GWEN_Plugin_GetName | ( | const GWEN_PLUGIN * | p | ) |

GWENHYWFAR_API GWEN_PLUGIN* GWEN_Plugin_new | ( | GWEN_PLUGIN_MANAGER * | pm,
|  | const char * | name,
|  | const char * | fileName
| ) |

GWENHYWFAR_API int GWEN_PluginManager_AddPath | ( | GWEN_PLUGIN_MANAGER * | pm,
|  | const char * | s
| ) |

| Add a directory path to lookup plugins from.

GWENHYWFAR_API int GWEN_PluginManager_AddPathFromWinReg | ( | GWEN_PLUGIN_MANAGER * | pm,
|  | const char * | keypath,
|  | const char * | varname
| ) |

Add a directory path from the windows registry HKEY_CURRENT_USER, to lookup plugins from. On Non-Windows systems, this function does nothing and returns zero.

FIXME: Maybe it should be possible whether to lookup in HKEY_CURRENT_USER vs. HKEY_LOCAL_MACHINE?

Returns:
  Zero on success, and non-zero on error.

Parameters:

  | pm | The PluginManager
  | keypath | The path to the registry key, e.g. "Software\\MySoftware\\Whatever"
  | varname | The key name (variable name?) inside the given registry key, e.g. "myvariable".

GWENHYWFAR_API GWEN_PLUGIN_MANAGER* GWEN_PluginManager_FindPluginManager | ( | const char * | s | ) |

GWENHYWFAR_API void GWEN_PluginManager_free | ( | GWEN_PLUGIN_MANAGER * | pm | ) |

GWENHYWFAR_API const char* GWEN_PluginManager_GetName | ( | const GWEN_PLUGIN_MANAGER * | pm | ) |

GWENHYWFAR_API const GWEN_STRINGLIST* GWEN_PluginManager_GetPaths | ( | const GWEN_PLUGIN_MANAGER * | pm | ) |

| Returns the list of all search paths of the given PluginManager.

GWENHYWFAR_API GWEN_PLUGIN* GWEN_PluginManager_GetPlugin | ( | GWEN_PLUGIN_MANAGER * | pm,
|  | const char * | s
| ) |

GWENHYWFAR_API GWEN_PLUGIN_DESCRIPTION_LIST2* GWEN_PluginManager_GetPluginDescrs | ( | GWEN_PLUGIN_MANAGER * | pm | ) |

GWENHYWFAR_API GWEN_PLUGIN* GWEN_PluginManager_LoadPlugin | ( | GWEN_PLUGIN_MANAGER * | pm,
|  | const char * | modName
| ) |

GWENHYWFAR_API GWEN_PLUGIN* GWEN_PluginManager_LoadPluginFile | ( | GWEN_PLUGIN_MANAGER * | pm,
|  | const char * | modName,
|  | const char * | fname
| ) |

GWENHYWFAR_API GWEN_PLUGIN_MANAGER* GWEN_PluginManager_new | ( | const char * | name | ) |

GWENHYWFAR_API int GWEN_PluginManager_Register | ( | GWEN_PLUGIN_MANAGER * | pm | ) |

GWENHYWFAR_API int GWEN_PluginManager_Unregister | ( | GWEN_PLUGIN_MANAGER * | pm | ) |