VBoxTrayMsg.h revision 4bca1461357775da282a478f5cdd38beb9f574b3
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync/* $Id$ */
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync/** @file
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync * VBoxTrayMsg - Globally registered messages (RPC) to/from VBoxTray.
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync */
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync/*
f8ca8c787b4309ccbcfd9f1e584ca80c8e06680fvboxsync * Copyright (C) 2010 Oracle Corporation
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync *
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync * available from http://www.virtualbox.org. This file is free software;
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync * you can redistribute it and/or modify it under the terms of the GNU
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync * General Public License (GPL) as published by the Free Software
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync */
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync#ifndef ___VBOXTRAY_MSG_H
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync#define ___VBOXTRAY_MSG_H
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync#define VBOXTRAY_PIPE_IPC "\\\\.\\pipe\\VBoxTrayIPC"
f8ca8c787b4309ccbcfd9f1e584ca80c8e06680fvboxsync#define VBOXTRAY_PIPE_IPC_BUFSIZE 64 * 1024
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync
ca0ee85505c252493a3ee53577848ef8939f991bvboxsyncenum VBOXTRAYIPCMSGTYPE
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync{
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync /** Asks the IPC thread to quit. */
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync VBOXTRAYIPCMSGTYPE_QUIT = 10,
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync /** Restarts VBoxTray. */
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync VBOXTRAYIPCMSGTYPE_RESTART = 11,
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync /** Shows a balloon message in the tray area. */
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync VBOXTRAYIPCMSGTYPE_SHOWBALLOONMSG = 100
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync};
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync/* VBoxTray's IPC header. */
ca0ee85505c252493a3ee53577848ef8939f991bvboxsynctypedef struct _VBOXTRAYIPCHEADER
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync{
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync /** Message type. */
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync ULONG ulMsg;
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync /** Size of message body
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync * (without this header). */
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync ULONG cbBody;
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync /** User-supplied wParam. */
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync ULONG wParam;
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync /** User-supplied lParam. */
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync ULONG lParam;
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync} VBOXTRAYIPCHEADER, *PVBOXTRAYIPCHEADER;
ca0ee85505c252493a3ee53577848ef8939f991bvboxsync
ca0ee85505c252493a3ee53577848ef8939f991bvboxsynctypedef struct _VBOXTRAYIPCMSG_SHOWBALLOONMSG
{
/** Message content. */
TCHAR szContent[256];
/** Message title. */
TCHAR szTitle[64];
/** Message type. */
ULONG ulType;
/** Flags; not used yet. */
ULONG ulFlags;
/** Time to show the message (in msec). */
ULONG ulShowMS;
} VBOXTRAYIPCMSG_SHOWBALLOONMSG, *PVBOXTRAYIPCMSG_SHOWBALLOONMSG;
#endif /* !___VBOXTRAY_MSG_H */