VBoxCrHgsmi.h revision 62471ba48484cd8fc1a391298efc0ff1d83d370e
62471ba48484cd8fc1a391298efc0ff1d83d370evboxsync/*
62471ba48484cd8fc1a391298efc0ff1d83d370evboxsync * Copyright (C) 2010 Oracle Corporation
62471ba48484cd8fc1a391298efc0ff1d83d370evboxsync *
62471ba48484cd8fc1a391298efc0ff1d83d370evboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
62471ba48484cd8fc1a391298efc0ff1d83d370evboxsync * available from http://www.virtualbox.org. This file is free software;
62471ba48484cd8fc1a391298efc0ff1d83d370evboxsync * you can redistribute it and/or modify it under the terms of the GNU
62471ba48484cd8fc1a391298efc0ff1d83d370evboxsync * General Public License (GPL) as published by the Free Software
62471ba48484cd8fc1a391298efc0ff1d83d370evboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
62471ba48484cd8fc1a391298efc0ff1d83d370evboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
62471ba48484cd8fc1a391298efc0ff1d83d370evboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
62471ba48484cd8fc1a391298efc0ff1d83d370evboxsync */
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__ */