GuestImpl.h revision e07acfb7f2dbb8bb40804024c79fd3139bdb3f24
/** @file
*
* VirtualBox COM class implementation
*/
/*
* Copyright (C) 2006-2007 Oracle Corporation
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
* General Public License (GPL) as published by the Free Software
* Foundation, in version 2 as it comes in the "COPYING" file of the
* VirtualBox OSE distribution. VirtualBox OSE is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
*/
#ifndef ____H_GUESTIMPL
#define ____H_GUESTIMPL
#include "VirtualBoxBase.h"
#ifdef VBOX_WITH_GUEST_CONTROL
#endif
typedef enum
{
#ifdef VBOX_WITH_GUEST_CONTROL
#endif
{
void FinalRelease();
// public initializer/uninitializer for internal purposes only
void uninit();
// IGuest properties
// IGuest methods
STDMETHOD(GetProcessOutput)(ULONG aPID, ULONG aFlags, ULONG aTimeoutMS, ULONG64 aSize, ComSafeArrayOut(BYTE, aData));
ULONG *aPageTotal, ULONG *aMemAllocTotal, ULONG *aMemFreeTotal, ULONG *aMemBalloonTotal, ULONG *aMemSharedTotal);
// public methods that are not in IDL
# ifdef VBOX_WITH_GUEST_CONTROL
/** Static callback for handling guest notifications. */
static DECLCALLBACK(int) doGuestCtrlNotification(void *pvExtension, uint32_t u32Function, void *pvParms, uint32_t cbParms);
# endif
# ifdef VBOX_WITH_GUEST_CONTROL
struct CallbackContext
{
/** Pointer to user-supplied data. */
void *pvData;
/** Size of user-supplied data. */
/** Pointer to user-supplied IProgress. */
};
/*
* The map key is the context ID.
*/
struct GuestProcess
{
};
/*
* The map key is the PID (process identifier).
*/
/** Handler for guest execution control notifications. */
uint32_t addCtrlCallbackContext(eVBoxGuestCtrlCallbackType enmType, void *pvData, uint32_t cbData, Progress* pProgress);
# endif
struct Data
{
mSupportsGraphics (FALSE) {}
};
# ifdef VBOX_WITH_GUEST_CONTROL
/** General extension callback for guest control. */
volatile uint32_t mNextContextID;
# endif
};
#endif // ____H_GUESTIMPL
/* vi: set tabstop=4 shiftwidth=4 expandtab: */