DVDImageImpl.cpp revision 2c75187df4bc65eae9117019c2190800bd1a7aa1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * VirtualBox COM class implementation
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Copyright (C) 2006-2007 innotek GmbH
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * available from http://www.virtualbox.org. This file is free software;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * you can redistribute it and/or modify it under the terms of the GNU
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * General Public License as published by the Free Software Foundation,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * distribution. VirtualBox OSE is distributed in the hope that it will
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * be useful, but WITHOUT ANY WARRANTY of any kind.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * If you received this file as part of a commercial VirtualBox
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * distribution, then only the terms of your commercial VirtualBox
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * license agreement apply instead of the previous paragraph.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// constructor / destructor
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/////////////////////////////////////////////////////////////////////////////
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// public initializer/uninitializer for internal purposes only
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/////////////////////////////////////////////////////////////////////////////
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Initializes the DVD image object.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * @param aParent
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * parent object
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * @param aFilePath
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * local file system path to the image file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * (can be relative to the VirtualBox config dir)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * @param aRegistered
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * whether this object is being initialized by the VirtualBox init code
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * because it is present in the registry
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * @param aId
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * ID of the DVD image to assign
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * @return COM result indicator
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncHRESULT DVDImage::init (VirtualBox *aParent, const BSTR aFilePath,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ComAssertRet (aParent && aFilePath && !!aId, E_INVALIDARG);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /* Enclose the state transition NotReady->InInit->Ready */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /* share the parent weakly */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /* register with parent early, since uninit() will unconditionally
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * unregister on failure */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /* get the full file name */
if (!aRegistered)
return rc;
if (!aId)
return E_POINTER;
return S_OK;
if (!aFilePath)
return E_POINTER;
return S_OK;
if (!aAccessible)
return E_POINTER;
return rc;
if (!aSize)
return E_POINTER;
return rc;