ExtPackManagerImpl.h revision 94e055188526aeeb119b5d60fe22bf7a302522dc
db479b48bd4d75423ed4a45e15b75089d1a8ad72fielding * VirtualBox Main - interface for Extension Packs, VBoxSVC & VBoxC.
240b85022b73af58a6d971cd3d05d54037d8f682nd * Copyright (C) 2010 Oracle Corporation
240b85022b73af58a6d971cd3d05d54037d8f682nd * This file is part of VirtualBox Open Source Edition (OSE), as
240b85022b73af58a6d971cd3d05d54037d8f682nd * available from http://www.virtualbox.org. This file is free software;
240b85022b73af58a6d971cd3d05d54037d8f682nd * you can redistribute it and/or modify it under the terms of the GNU
240b85022b73af58a6d971cd3d05d54037d8f682nd * General Public License (GPL) as published by the Free Software
240b85022b73af58a6d971cd3d05d54037d8f682nd * Foundation, in version 2 as it comes in the "COPYING" file of the
240b85022b73af58a6d971cd3d05d54037d8f682nd * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
240b85022b73af58a6d971cd3d05d54037d8f682nd * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
eb3171a063fe502d50dd335c2d99c84eb7053935bnicholes * An extension pack file.
43aea3e7c517d422b84242bd4474d94802d3b4e3bnicholes /** @name COM and internal init/term/mapping cruft.
43aea3e7c517d422b84242bd4474d94802d3b4e3bnicholes VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ExtPackFile, IExtPackFile)
943fe3052a481f6980c5a489ff767c6effb581e2fuankg /** @name IExtPackBase interfaces
b972d6954acbeafb8e1d6e7020e1e907cb884d0cfuankg STDMETHOD(COMGETTER(Description))(BSTR *a_pbstrDescription);
943fe3052a481f6980c5a489ff767c6effb581e2fuankg STDMETHOD(COMGETTER(VRDEModule))(BSTR *a_pbstrVrdeModule);
943fe3052a481f6980c5a489ff767c6effb581e2fuankg STDMETHOD(COMGETTER(PlugIns))(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns));
43aea3e7c517d422b84242bd4474d94802d3b4e3bnicholes STDMETHOD(COMGETTER(WhyUnusable))(BSTR *a_pbstrWhy);
7640ae77eade5ef41bb3bf964a9d437e64c55da3bnicholes /** @name IExtPackFile interfaces
7640ae77eade5ef41bb3bf964a9d437e64c55da3bnicholes STDMETHOD(COMGETTER(FilePath))(BSTR *a_pbstrPath);
7640ae77eade5ef41bb3bf964a9d437e64c55da3bnicholes /** Pointer to the private instance. */
7640ae77eade5ef41bb3bf964a9d437e64c55da3bnicholes * An installed extension pack.
b972d6954acbeafb8e1d6e7020e1e907cb884d0cfuankg /** @name COM and internal init/term/mapping cruft.
43aea3e7c517d422b84242bd4474d94802d3b4e3bnicholes VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(ExtPack, IExtPack)
9b761068843e8072da6d00a5d59972bdba793426fuankg HRESULT initWithDir(VBOXEXTPACKCTX a_enmContext, const char *a_pszName, const char *a_pszDir);
9b761068843e8072da6d00a5d59972bdba793426fuankg /** @name IExtPackBase interfaces
9b761068843e8072da6d00a5d59972bdba793426fuankg STDMETHOD(COMGETTER(Description))(BSTR *a_pbstrDescription);
9b761068843e8072da6d00a5d59972bdba793426fuankg STDMETHOD(COMGETTER(VRDEModule))(BSTR *a_pbstrVrdeModule);
9b761068843e8072da6d00a5d59972bdba793426fuankg STDMETHOD(COMGETTER(PlugIns))(ComSafeArrayOut(IExtPackPlugIn *, a_paPlugIns));
bool wantsToBeDefaultVrde(void) const;
void probeAndLoad(void);
static DECLCALLBACK(int) hlpFindModule(PCVBOXEXTPACKHLP pHlp, const char *pszName, const char *pszExt,
static DECLCALLBACK(int) hlpGetFilePath(PCVBOXEXTPACKHLP pHlp, const char *pszFilename, char *pszPath, size_t cbPath);
struct Data;
Data *m;
void FinalRelease();
void uninit();
STDMETHOD(QueryAllPlugInsForFrontend)(IN_BSTR a_bstrFrontend, ComSafeArrayOut(BSTR, a_pabstrPlugInModules));
void processDropZone(void);
void callAllVirtualBoxReadyHooks(void);
struct Data;
Data *m;