Wrapper.h revision 2c1d6e606706dfdb0920a2b083e8d1073f282b47
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync * VirtualBox COM: API wrapper helpers
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync * Copyright (C) 2012-2013 Oracle Corporation
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync * available from http://www.virtualbox.org. This file is free software;
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync * you can redistribute it and/or modify it under the terms of the GNU
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync * General Public License (GPL) as published by the Free Software
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync * Checks that the given pointer to an output argument is valid and throws
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync * E_POINTER + extended error info otherwise.
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync * @param arg Pointer argument.
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync tr("Output argument %s points to invalid memory location (%p)"), \
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync } while (0)
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#else // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#endif // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync ArrayBSTROutConverter(ComSafeArrayOut(BSTR, aDst)) :
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#else // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#endif // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#else // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#endif // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync ArrayBSTRInConverter(ComSafeArrayIn(IN_BSTR, aSrc))
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync com::SafeArray<IN_BSTR> inArray(ComSafeArrayInArg(aSrc));
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#else // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#endif // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync ArrayUuidOutConverter(ComSafeArrayOut(BSTR, aDst)) :
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#else // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#endif // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#else // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#endif // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#else // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#endif // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync ArrayComTypeOutConverter(ComSafeArrayOut(A *, aDst)) :
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#else // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#endif // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#else // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#endif // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync com::SafeIfaceArray<A> inArray(ComSafeArrayInArg(aSrc));
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#else // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#endif // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#else // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#endif // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#else // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#endif // !VBOX_WITH_XPCOM
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync com::SafeArray<A> inArray(ComSafeArrayInArg(aSrc));
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#endif // ____H_WRAPPER
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync/* vi: set tabstop=4 shiftwidth=4 expandtab: */