VBoxCrHgsmi.h revision e862981c2e186a4cb6a126557d57603cc100d448
e862981c2e186a4cb6a126557d57603cc100d448vboxsync#ifndef ___VBoxCrHgsmi_h__
e862981c2e186a4cb6a126557d57603cc100d448vboxsync#define ___VBoxCrHgsmi_h__
e862981c2e186a4cb6a126557d57603cc100d448vboxsync
e862981c2e186a4cb6a126557d57603cc100d448vboxsync#include <iprt/cdefs.h>
e862981c2e186a4cb6a126557d57603cc100d448vboxsync#include <VBox/VBoxUhgsmi.h>
e862981c2e186a4cb6a126557d57603cc100d448vboxsync
e862981c2e186a4cb6a126557d57603cc100d448vboxsyncRT_C_DECLS_BEGIN
e862981c2e186a4cb6a126557d57603cc100d448vboxsync
e862981c2e186a4cb6a126557d57603cc100d448vboxsync#if 0
e862981c2e186a4cb6a126557d57603cc100d448vboxsync/* enable this in case we include this in a dll*/
e862981c2e186a4cb6a126557d57603cc100d448vboxsync# ifdef IN_VBOXCRHGSMI
e862981c2e186a4cb6a126557d57603cc100d448vboxsync# define VBOXCRHGSMI_DECL(_type) DECLEXPORT(_type)
e862981c2e186a4cb6a126557d57603cc100d448vboxsync# else
e862981c2e186a4cb6a126557d57603cc100d448vboxsync# define VBOXCRHGSMI_DECL(_type) DECLIMPORT(_type)
e862981c2e186a4cb6a126557d57603cc100d448vboxsync# endif
e862981c2e186a4cb6a126557d57603cc100d448vboxsync#else
e862981c2e186a4cb6a126557d57603cc100d448vboxsync/*enable this in case we include this in a static lib*/
e862981c2e186a4cb6a126557d57603cc100d448vboxsync# define VBOXCRHGSMI_DECL(_type) _type
e862981c2e186a4cb6a126557d57603cc100d448vboxsync#endif
e862981c2e186a4cb6a126557d57603cc100d448vboxsync
e862981c2e186a4cb6a126557d57603cc100d448vboxsynctypedef void * HVBOXCRHGSMI_CLIENT;
e862981c2e186a4cb6a126557d57603cc100d448vboxsync
e862981c2e186a4cb6a126557d57603cc100d448vboxsynctypedef DECLCALLBACK(HVBOXCRHGSMI_CLIENT) FNVBOXCRHGSMI_CLIENT_CREATE(PVBOXUHGSMI pHgsmi);
e862981c2e186a4cb6a126557d57603cc100d448vboxsynctypedef FNVBOXCRHGSMI_CLIENT_CREATE *PFNVBOXCRHGSMI_CLIENT_CREATE;
e862981c2e186a4cb6a126557d57603cc100d448vboxsync
e862981c2e186a4cb6a126557d57603cc100d448vboxsynctypedef DECLCALLBACK(void) FNVBOXCRHGSMI_CLIENT_DESTROY(HVBOXCRHGSMI_CLIENT hClient);
e862981c2e186a4cb6a126557d57603cc100d448vboxsynctypedef FNVBOXCRHGSMI_CLIENT_DESTROY *PFNVBOXCRHGSMI_CLIENT_DESTROY;
e862981c2e186a4cb6a126557d57603cc100d448vboxsync
e862981c2e186a4cb6a126557d57603cc100d448vboxsynctypedef struct VBOXCRHGSMI_CALLBACKS
e862981c2e186a4cb6a126557d57603cc100d448vboxsync{
e862981c2e186a4cb6a126557d57603cc100d448vboxsync PFNVBOXCRHGSMI_CLIENT_CREATE pfnClientCreate;
e862981c2e186a4cb6a126557d57603cc100d448vboxsync PFNVBOXCRHGSMI_CLIENT_DESTROY pfnClientDestroy;
e862981c2e186a4cb6a126557d57603cc100d448vboxsync} VBOXCRHGSMI_CALLBACKS, *PVBOXCRHGSMI_CALLBACKS;
e862981c2e186a4cb6a126557d57603cc100d448vboxsync
e862981c2e186a4cb6a126557d57603cc100d448vboxsyncVBOXCRHGSMI_DECL(int) VBoxCrHgsmiInit(PVBOXCRHGSMI_CALLBACKS pCallbacks);
e862981c2e186a4cb6a126557d57603cc100d448vboxsyncVBOXCRHGSMI_DECL(int) VBoxCrHgsmiTerm();
e862981c2e186a4cb6a126557d57603cc100d448vboxsyncVBOXCRHGSMI_DECL(HVBOXCRHGSMI_CLIENT) VBoxCrHgsmiQueryClient();
e862981c2e186a4cb6a126557d57603cc100d448vboxsync
e862981c2e186a4cb6a126557d57603cc100d448vboxsyncRT_C_DECLS_END
e862981c2e186a4cb6a126557d57603cc100d448vboxsync
e862981c2e186a4cb6a126557d57603cc100d448vboxsync#endif /* #ifndef ___VBoxCrHgsmi_h__ */