VBoxTray.h revision 315ad5b8dea4f6f933a01420cfb1e0fe19183c45
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync/** @file
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync *
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync * VBoxService - Guest Additions Service
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync *
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync */
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync/*
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync * Copyright (C) 2006-2007 Sun Microsystems, Inc.
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync *
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync * available from http://www.virtualbox.org. This file is free software;
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync * you can redistribute it and/or modify it under the terms of the GNU
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync * General Public License (GPL) as published by the Free Software
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync *
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync * additional information or have any questions.
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync */
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync#ifndef __VBOXSERVICE__H
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync#define __VBOXSERVICE__H
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync#include <windows.h>
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync#include <tchar.h>
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync#include <stdio.h>
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync#include <stdarg.h>
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync#include <process.h>
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync
315ad5b8dea4f6f933a01420cfb1e0fe19183c45vboxsync#include <iprt/initterm.h>
315ad5b8dea4f6f933a01420cfb1e0fe19183c45vboxsync#include <iprt/string.h>
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync
315ad5b8dea4f6f933a01420cfb1e0fe19183c45vboxsync#include <VBox/version.h>
315ad5b8dea4f6f933a01420cfb1e0fe19183c45vboxsync#include <VBox/VBoxGuest.h>
315ad5b8dea4f6f933a01420cfb1e0fe19183c45vboxsync#include <VBox/Log.h>
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync#define WM_VBOX_RESTORED 0x2005
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync#define WM_VBOX_CHECK_VRDP 0x2006
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync/* The environment information for services. */
e62cb87bae732e9968199a3ad153cc94004b7182vboxsynctypedef struct _VBOXSERVICEENV
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync{
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync HINSTANCE hInstance;
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync HANDLE hDriver;
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync HANDLE hStopEvent;
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync} VBOXSERVICEENV;
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync/* The service initialization info and runtime variables. */
e62cb87bae732e9968199a3ad153cc94004b7182vboxsynctypedef struct _VBOXSERVICEINFO
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync{
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync char *pszName;
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync int (* pfnInit) (const VBOXSERVICEENV *pEnv, void **ppInstance, bool *pfStartThread);
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync unsigned (__stdcall * pfnThread) (void *pInstance);
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync void (* pfnDestroy) (const VBOXSERVICEENV *pEnv, void *pInstance);
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync /* Variables. */
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync HANDLE hThread;
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync void *pInstance;
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync bool fStarted;
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync} VBOXSERVICEINFO;
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync
e62cb87bae732e9968199a3ad153cc94004b7182vboxsyncextern HWND gToolWindow;
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync
e62cb87bae732e9968199a3ad153cc94004b7182vboxsync#endif /* __VBOXSERVICE__H */