Wrapper.h revision cd262b48e0da0a4b21a5c5dbb7d653626fb4d2b0
eb6509c759a277527b791759757d9d9a5b1c5e32vboxsync * VirtualBox COM: API wrapper helpers
d981a844e64c196b4c96be1a52ddc42e23337138vboxsync * Copyright (C) 2012-2013 Oracle Corporation
eb6509c759a277527b791759757d9d9a5b1c5e32vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
d981a844e64c196b4c96be1a52ddc42e23337138vboxsync * available from http://www.virtualbox.org. This file is free software;
d981a844e64c196b4c96be1a52ddc42e23337138vboxsync * you can redistribute it and/or modify it under the terms of the GNU
d981a844e64c196b4c96be1a52ddc42e23337138vboxsync * General Public License (GPL) as published by the Free Software
d981a844e64c196b4c96be1a52ddc42e23337138vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
d981a844e64c196b4c96be1a52ddc42e23337138vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
d981a844e64c196b4c96be1a52ddc42e23337138vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
aee9566869f4ef64fd4c1bf0b6b0472118c4e3dcvboxsync * Checks that the given pointer to an output argument is valid and throws
aee9566869f4ef64fd4c1bf0b6b0472118c4e3dcvboxsync * E_POINTER + extended error info otherwise.
aee9566869f4ef64fd4c1bf0b6b0472118c4e3dcvboxsync * @param arg Pointer argument.
aee9566869f4ef64fd4c1bf0b6b0472118c4e3dcvboxsync tr("Output argument %s points to invalid memory location (%p)"), \
aee9566869f4ef64fd4c1bf0b6b0472118c4e3dcvboxsync } while (0)
eb6509c759a277527b791759757d9d9a5b1c5e32vboxsync#else // !VBOX_WITH_XPCOM
eb6509c759a277527b791759757d9d9a5b1c5e32vboxsync#endif // !VBOX_WITH_XPCOM
eb6509c759a277527b791759757d9d9a5b1c5e32vboxsync ArrayBSTROutConverter(ComSafeArrayOut(BSTR, aDst)) :
eb6509c759a277527b791759757d9d9a5b1c5e32vboxsync#else // !VBOX_WITH_XPCOM
eb6509c759a277527b791759757d9d9a5b1c5e32vboxsync#endif // !VBOX_WITH_XPCOM
#ifdef VBOX_WITH_XPCOM
return mArray;
if (mDst)
return mUuid;
return mSrc;
#ifdef VBOX_WITH_XPCOM
#ifdef VBOX_WITH_XPCOM
if (mDst)
return mArray;
#ifdef VBOX_WITH_XPCOM
if (mDst)
return mPtr;
A **mDst;
return mSrc;
#ifdef VBOX_WITH_XPCOM
#ifdef VBOX_WITH_XPCOM
if (mDst)
return mArray;
#ifdef VBOX_WITH_XPCOM
A ***mDst;
return mArray;
#ifdef VBOX_WITH_XPCOM
#ifdef VBOX_WITH_XPCOM
if (mDst)
return mArray;
#ifdef VBOX_WITH_XPCOM
A **mDst;
return mArray;