AAFRESULT STDMETHODCALLTYPE
    ImplAAFMultipleDescriptor::GetFileDescriptors (
      ImplEnumAAFFileDescriptors **ppEnum)
{
  if (ppEnum == NULL)
    return AAFRESULT_NULL_PARAM;

  ImplEnumAAFFileDescriptors *theEnum = (ImplEnumAAFFileDescriptors *)CreateImpl(CLSID_EnumAAFFileDescriptors);
  
  XPROTECT()
  {
    OMStrongReferenceVectorIterator<ImplAAFFileDescriptor> *iter =
        new OMStrongReferenceVectorIterator<ImplAAFFileDescriptor>(_Descriptors);
    if (iter == 0)
        RAISE(AAFRESULT_NOMEMORY);
    CHECK(theEnum->Initialize(&CLSID_EnumAAFFileDescriptors, this, iter));
    *ppEnum = theEnum;
  }
  XEXCEPT
  {
    if (theEnum)
      theEnum->ReleaseReference();
    theEnum = 0;
  }
  XEND;
  
  return AAFRESULT_SUCCESS;
}