1a84601801d5bd045712787a3ef59313795389a1vboxsync/** $Id$ */
1a84601801d5bd045712787a3ef59313795389a1vboxsync/** @file
1a84601801d5bd045712787a3ef59313795389a1vboxsync * VBoxClient - common definitions, Darwin.
1a84601801d5bd045712787a3ef59313795389a1vboxsync */
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync/*
1a84601801d5bd045712787a3ef59313795389a1vboxsync * Copyright (C) 2007-2013 Oracle Corporation
1a84601801d5bd045712787a3ef59313795389a1vboxsync *
1a84601801d5bd045712787a3ef59313795389a1vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
1a84601801d5bd045712787a3ef59313795389a1vboxsync * available from http://www.virtualbox.org. This file is free software;
1a84601801d5bd045712787a3ef59313795389a1vboxsync * you can redistribute it and/or modify it under the terms of the GNU
1a84601801d5bd045712787a3ef59313795389a1vboxsync * General Public License (GPL) as published by the Free Software
1a84601801d5bd045712787a3ef59313795389a1vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
1a84601801d5bd045712787a3ef59313795389a1vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
1a84601801d5bd045712787a3ef59313795389a1vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
1a84601801d5bd045712787a3ef59313795389a1vboxsync */
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync#ifndef ___VBoxClientInternal_h
1a84601801d5bd045712787a3ef59313795389a1vboxsync#define ___VBoxClientInternal_h
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync#include <VBox/VBoxGuestLib.h>
1a84601801d5bd045712787a3ef59313795389a1vboxsync#include <Carbon/Carbon.h>
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync/* Service description */
1a84601801d5bd045712787a3ef59313795389a1vboxsynctypedef struct
1a84601801d5bd045712787a3ef59313795389a1vboxsync{
1a84601801d5bd045712787a3ef59313795389a1vboxsync /** The service name. */
1a84601801d5bd045712787a3ef59313795389a1vboxsync const char *pszName;
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync /**
1a84601801d5bd045712787a3ef59313795389a1vboxsync * Start service.
1a84601801d5bd045712787a3ef59313795389a1vboxsync * @returns VBox status code.
1a84601801d5bd045712787a3ef59313795389a1vboxsync */
1a84601801d5bd045712787a3ef59313795389a1vboxsync DECLCALLBACKMEMBER(int, pfnStart)(void);
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync /**
1a84601801d5bd045712787a3ef59313795389a1vboxsync * Stop service.
1a84601801d5bd045712787a3ef59313795389a1vboxsync * @returns VBox status code.
1a84601801d5bd045712787a3ef59313795389a1vboxsync */
1a84601801d5bd045712787a3ef59313795389a1vboxsync DECLCALLBACKMEMBER(int, pfnStop)(void);
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync} VBOXCLIENTSERVICE;
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync/*
1a84601801d5bd045712787a3ef59313795389a1vboxsync * Services
1a84601801d5bd045712787a3ef59313795389a1vboxsync */
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsyncRT_C_DECLS_BEGIN
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsyncextern VBOXCLIENTSERVICE g_ClipboardService;
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsyncRT_C_DECLS_END
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync/*
1a84601801d5bd045712787a3ef59313795389a1vboxsync * Functions
1a84601801d5bd045712787a3ef59313795389a1vboxsync */
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync/**
1a84601801d5bd045712787a3ef59313795389a1vboxsync * Displays a verbose message.
1a84601801d5bd045712787a3ef59313795389a1vboxsync *
1a84601801d5bd045712787a3ef59313795389a1vboxsync * @param iLevel Minimum log level required to display this message.
1a84601801d5bd045712787a3ef59313795389a1vboxsync * @param pszFormat The message text.
1a84601801d5bd045712787a3ef59313795389a1vboxsync * @param ... Format arguments.
1a84601801d5bd045712787a3ef59313795389a1vboxsync */
1a84601801d5bd045712787a3ef59313795389a1vboxsyncextern void VBoxClientVerbose(int iLevel, const char *pszFormat, ...);
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync/**
1a84601801d5bd045712787a3ef59313795389a1vboxsync * Walk through pasteboard items and report currently available item types.
1a84601801d5bd045712787a3ef59313795389a1vboxsync *
1a84601801d5bd045712787a3ef59313795389a1vboxsync * @param pPasteboard Reference to guest Pasteboard.
1a84601801d5bd045712787a3ef59313795389a1vboxsync # @returns Available formats bit field.
1a84601801d5bd045712787a3ef59313795389a1vboxsync */
1a84601801d5bd045712787a3ef59313795389a1vboxsyncextern uint32_t vbclClipboardGetAvailableFormats(PasteboardRef pPasteboard);
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync/**
1a84601801d5bd045712787a3ef59313795389a1vboxsync * Read host's clipboard buffer and put its content to guest clipboard.
1a84601801d5bd045712787a3ef59313795389a1vboxsync *
1a84601801d5bd045712787a3ef59313795389a1vboxsync * @param u32ClientId Host connection.
1a84601801d5bd045712787a3ef59313795389a1vboxsync * @param pPasteboard Guest PasteBoard reference.
1a84601801d5bd045712787a3ef59313795389a1vboxsync * @param fFormats List of data formats (bit field) received from host.
1a84601801d5bd045712787a3ef59313795389a1vboxsync *
1a84601801d5bd045712787a3ef59313795389a1vboxsync * @returns IPRT status code.
1a84601801d5bd045712787a3ef59313795389a1vboxsync */
1a84601801d5bd045712787a3ef59313795389a1vboxsyncextern int vbclClipboardForwardToGuest(uint32_t u32ClientId, PasteboardRef pPasteboard, uint32_t fFormats);
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync/**
1a84601801d5bd045712787a3ef59313795389a1vboxsync * Read guest's clipboard buffer and forward its content to host.
1a84601801d5bd045712787a3ef59313795389a1vboxsync *
1a84601801d5bd045712787a3ef59313795389a1vboxsync * @param u32ClientId Host clipboard connection.
1a84601801d5bd045712787a3ef59313795389a1vboxsync * @param pPasteboard Guest PasteBoard reference.
1a84601801d5bd045712787a3ef59313795389a1vboxsync * @param fFormats List of data formats (bit field) received from host.
1a84601801d5bd045712787a3ef59313795389a1vboxsync *
1a84601801d5bd045712787a3ef59313795389a1vboxsync * @returns IPRT status code.
1a84601801d5bd045712787a3ef59313795389a1vboxsync */
1a84601801d5bd045712787a3ef59313795389a1vboxsyncextern int vbclClipboardForwardToHost(uint32_t u32ClientId, PasteboardRef pPasteboard, uint32_t fFormats);
1a84601801d5bd045712787a3ef59313795389a1vboxsync
1a84601801d5bd045712787a3ef59313795389a1vboxsync#endif /* ___VBoxClientInternal_h */