VBoxCrHgsmi.h revision 7420e5ee5565b181c144eabb14da0da9e8cce657
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.
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync *
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * The contents of this file may alternatively be used under the terms
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * of the Common Development and Distribution License Version 1.0
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * VirtualBox OSE distribution, in which case the provisions of the
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * CDDL are applicable instead of those of the GPL.
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync *
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * You may elect to license modified versions of this file under the
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * terms and conditions of either the GPL or the CDDL or both.
62471ba48484cd8fc1a391298efc0ff1d83d370evboxsync */
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync#ifndef ___VBox_VBoxCrHgsmi_h
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync#define ___VBox_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
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync# define VBOXCRHGSMI_DECL(a_Type) DECLEXPORT(a_Type)
e862981c2e186a4cb6a126557d57603cc100d448vboxsync# else
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync# define VBOXCRHGSMI_DECL(a_Type) DECLIMPORT(a_Type)
e862981c2e186a4cb6a126557d57603cc100d448vboxsync# endif
e862981c2e186a4cb6a126557d57603cc100d448vboxsync#else
e862981c2e186a4cb6a126557d57603cc100d448vboxsync/*enable this in case we include this in a static lib*/
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync# define VBOXCRHGSMI_DECL(a_Type) a_Type
e862981c2e186a4cb6a126557d57603cc100d448vboxsync#endif
e862981c2e186a4cb6a126557d57603cc100d448vboxsync
7704ab3cf2fe38a3307d6abee1f097fa4346e20evboxsync#ifdef VBOX_CRHGSMI_WITH_D3DDEV
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(HVBOXCRHGSMI_CLIENT) VBoxCrHgsmiQueryClient();
7704ab3cf2fe38a3307d6abee1f097fa4346e20evboxsync#else
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsyncVBOXCRHGSMI_DECL(int) VBoxCrHgsmiInit(void);
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsyncVBOXCRHGSMI_DECL(PVBOXUHGSMI) VBoxCrHgsmiCreate(void);
7704ab3cf2fe38a3307d6abee1f097fa4346e20evboxsyncVBOXCRHGSMI_DECL(void) VBoxCrHgsmiDestroy(PVBOXUHGSMI pHgsmi);
7704ab3cf2fe38a3307d6abee1f097fa4346e20evboxsync#endif
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsyncVBOXCRHGSMI_DECL(int) VBoxCrHgsmiTerm(void);
e862981c2e186a4cb6a126557d57603cc100d448vboxsync
4e664340a06cc85b77cd1e6bddcd5b2da558ddd5vboxsyncVBOXCRHGSMI_DECL(void) VBoxCrHgsmiLog(char * szString);
4e664340a06cc85b77cd1e6bddcd5b2da558ddd5vboxsync
e862981c2e186a4cb6a126557d57603cc100d448vboxsyncRT_C_DECLS_END
e862981c2e186a4cb6a126557d57603cc100d448vboxsync
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync#endif
7420e5ee5565b181c144eabb14da0da9e8cce657vboxsync