VBoxCrHgsmi.h revision 7704ab3cf2fe38a3307d6abee1f097fa4346e20e
6ae232055d4d8a97267517c5e50074c2c819941and/*
6ae232055d4d8a97267517c5e50074c2c819941and * Copyright (C) 2010 Oracle Corporation
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd *
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd * This file is part of VirtualBox Open Source Edition (OSE), as
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd * available from http://www.virtualbox.org. This file is free software;
6ae232055d4d8a97267517c5e50074c2c819941and * you can redistribute it and/or modify it under the terms of the GNU
6ae232055d4d8a97267517c5e50074c2c819941and * General Public License (GPL) as published by the Free Software
6ae232055d4d8a97267517c5e50074c2c819941and * Foundation, in version 2 as it comes in the "COPYING" file of the
6ae232055d4d8a97267517c5e50074c2c819941and * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
96ad5d81ee4a2cc66a4ae19893efc8aa6d06fae7jailletc * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
6ae232055d4d8a97267517c5e50074c2c819941and *
6ae232055d4d8a97267517c5e50074c2c819941and * The contents of this file may alternatively be used under the terms
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * of the Common Development and Distribution License Version 1.0
2e545ce2450a9953665f701bb05350f0d3f26275nd * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * VirtualBox OSE distribution, in which case the provisions of the
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * CDDL are applicable instead of those of the GPL.
6ae232055d4d8a97267517c5e50074c2c819941and *
6ae232055d4d8a97267517c5e50074c2c819941and * You may elect to license modified versions of this file under the
6ae232055d4d8a97267517c5e50074c2c819941and * terms and conditions of either the GPL or the CDDL or both.
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen */
3f08db06526d6901aa08c110b5bc7dde6bc39905nd#ifndef ___VBoxCrHgsmi_h__
6ae232055d4d8a97267517c5e50074c2c819941and#define ___VBoxCrHgsmi_h__
6ae232055d4d8a97267517c5e50074c2c819941and
6ae232055d4d8a97267517c5e50074c2c819941and#include <iprt/cdefs.h>
b43f840409794ed298e8634f6284741f193b6c4ftakashi#include <VBox/VBoxUhgsmi.h>
6ae232055d4d8a97267517c5e50074c2c819941and
6ae232055d4d8a97267517c5e50074c2c819941andRT_C_DECLS_BEGIN
6ae232055d4d8a97267517c5e50074c2c819941and
b43f840409794ed298e8634f6284741f193b6c4ftakashi#if 0
11495c9f0bd33e51a25b4d532beadfbcf9b944a3nilgun/* enable this in case we include this in a dll*/
6ae232055d4d8a97267517c5e50074c2c819941and# ifdef IN_VBOXCRHGSMI
f3ec420152ca921e4c1ce77782f51b53f659018dnd# define VBOXCRHGSMI_DECL(_type) DECLEXPORT(_type)
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung# else
6ae232055d4d8a97267517c5e50074c2c819941and# define VBOXCRHGSMI_DECL(_type) DECLIMPORT(_type)
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coar# endif
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coar#else
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coar/*enable this in case we include this in a static lib*/
5d01f40ffd657dd2ac567aacd93cabd162ddfa79coar# define VBOXCRHGSMI_DECL(_type) _type
6ae232055d4d8a97267517c5e50074c2c819941and#endif
6ae232055d4d8a97267517c5e50074c2c819941and
6ae232055d4d8a97267517c5e50074c2c819941and#ifdef VBOX_CRHGSMI_WITH_D3DDEV
6ae232055d4d8a97267517c5e50074c2c819941andtypedef void * HVBOXCRHGSMI_CLIENT;
6ae232055d4d8a97267517c5e50074c2c819941and
6ae232055d4d8a97267517c5e50074c2c819941andtypedef DECLCALLBACK(HVBOXCRHGSMI_CLIENT) FNVBOXCRHGSMI_CLIENT_CREATE(PVBOXUHGSMI pHgsmi);
6ae232055d4d8a97267517c5e50074c2c819941andtypedef FNVBOXCRHGSMI_CLIENT_CREATE *PFNVBOXCRHGSMI_CLIENT_CREATE;
6ae232055d4d8a97267517c5e50074c2c819941and
6ae232055d4d8a97267517c5e50074c2c819941andtypedef DECLCALLBACK(void) FNVBOXCRHGSMI_CLIENT_DESTROY(HVBOXCRHGSMI_CLIENT hClient);
6ae232055d4d8a97267517c5e50074c2c819941andtypedef FNVBOXCRHGSMI_CLIENT_DESTROY *PFNVBOXCRHGSMI_CLIENT_DESTROY;
6ae232055d4d8a97267517c5e50074c2c819941and
6ae232055d4d8a97267517c5e50074c2c819941andtypedef struct VBOXCRHGSMI_CALLBACKS
6ae232055d4d8a97267517c5e50074c2c819941and{
01d52afd5ea497df24826737569291294d5dfa04rbowen PFNVBOXCRHGSMI_CLIENT_CREATE pfnClientCreate;
6ae232055d4d8a97267517c5e50074c2c819941and PFNVBOXCRHGSMI_CLIENT_DESTROY pfnClientDestroy;
6ae232055d4d8a97267517c5e50074c2c819941and} VBOXCRHGSMI_CALLBACKS, *PVBOXCRHGSMI_CALLBACKS;
6ae232055d4d8a97267517c5e50074c2c819941and
6ae232055d4d8a97267517c5e50074c2c819941andVBOXCRHGSMI_DECL(int) VBoxCrHgsmiInit(PVBOXCRHGSMI_CALLBACKS pCallbacks);
6ae232055d4d8a97267517c5e50074c2c819941andVBOXCRHGSMI_DECL(HVBOXCRHGSMI_CLIENT) VBoxCrHgsmiQueryClient();
6ae232055d4d8a97267517c5e50074c2c819941and#else
6ae232055d4d8a97267517c5e50074c2c819941andVBOXCRHGSMI_DECL(int) VBoxCrHgsmiInit();
6ae232055d4d8a97267517c5e50074c2c819941andVBOXCRHGSMI_DECL(PVBOXUHGSMI) VBoxCrHgsmiCreate();
01d52afd5ea497df24826737569291294d5dfa04rbowenVBOXCRHGSMI_DECL(void) VBoxCrHgsmiDestroy(PVBOXUHGSMI pHgsmi);
01d52afd5ea497df24826737569291294d5dfa04rbowen#endif
01d52afd5ea497df24826737569291294d5dfa04rbowenVBOXCRHGSMI_DECL(int) VBoxCrHgsmiTerm();
01d52afd5ea497df24826737569291294d5dfa04rbowen
6ae232055d4d8a97267517c5e50074c2c819941andVBOXCRHGSMI_DECL(void) VBoxCrHgsmiLog(char * szString);
6ae232055d4d8a97267517c5e50074c2c819941and
1f1b6bf13313fdd14a45e52e553d3ff28689b717coarRT_C_DECLS_END
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar#endif /* #ifndef ___VBoxCrHgsmi_h__ */
1f1b6bf13313fdd14a45e52e553d3ff28689b717coar