c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync * VirtualBox COM: API wrapper helpers
9ef5da9e2896315d9b3d23444611b4ff82e78211vboxsync * Copyright (C) 2012-2014 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))
a49dafa13549ac5db76a3c7f5e44ba83485a1971vboxsync 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
a49dafa13549ac5db76a3c7f5e44ba83485a1971vboxsync 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
99dc7da49bb0b79d868c6ea07e43c94497d4d6e2vboxsync com::SafeArray<A> inArray(ComSafeArrayInArg(aSrc));
9ef5da9e2896315d9b3d23444611b4ff82e78211vboxsync#endif // !____H_WRAPPER
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync/* vi: set tabstop=4 shiftwidth=4 expandtab: */