/// <summary>
		/// retrieves the parent from a handle
		/// </summary>
		internal AddressSpaceElement GetParent(uint aHandle)
		{
			if (aHandle == 0)
			{
				return m_root;
			} //	end if

			OTObjectData parent = new OTObjectData();
			IntPtr pParent = Marshal.AllocCoTaskMem(Marshal.SizeOf(parent));
			Marshal.StructureToPtr(parent, pParent, false);

			if ((uint) EnumResultCode.S_OK != OTBFunctions.OTSGetParent(aHandle, pParent))
			{
				return null;
			} //	end if

			parent = (OTObjectData) Marshal.PtrToStructure(pParent, typeof (OTObjectData));
			Marshal.FreeCoTaskMem(pParent);

			AddressSpaceElement elementParent = GetElementFromArray(parent.m_userData);
			if (elementParent == null)
			{
				return m_root;
			} //	end if

			return elementParent;
		} //	end getParent