/// <summary>
        /// Makes a request to a remote media server to export the binary file from a resource
        /// to a specified URI.
        /// </summary>
        /// <param name="destinationUri">the URI where the binary should be sent</param>
        /// <param name="Tag">
        /// Miscellaneous, user-provided object for tracking this
        /// asynchronous call. Can be used as a means to pass a
        /// user-defined "state object" at invoke-time so that
        /// the executed callback during results-processing can be
        /// aware of the component's state at the time of the call.
        /// </param>
        /// <param name="callback">the callback to execute when results become available</param>
        /// <exception cref="InvalidCastException">
        /// Thrown if the owner of this object is not an <see cref="ICpMedia"/> instance.
        /// </exception>
        public void RequestExportResource(System.Uri destinationUri, object Tag, CpMediaDelegates.Delegate_ResultExportResource callback)
        {
            // simpy calls the owner object's implementation of the method by the same name
            ICpMedia owner = (ICpMedia)this.Owner;

            owner.RequestExportResource(this, destinationUri, Tag, callback);
        }
        /// <summary>
        /// Makes a request to a remote media server to export one of its binary files
        /// to another location.
        /// </summary>
        /// <param name="exportThis">
        /// The resource (of this media object) that should be exported.
        /// </param>
        /// <param name="sendHere">
        /// The uri where the binary should be sent.
        /// </param>
        /// <param name="Tag">
        /// Miscellaneous, user-provided object for tracking this
        /// asynchronous call. Can be used as a means to pass a
        /// user-defined "state object" at invoke-time so that
        /// the executed callback during results-processing can be
        /// aware of the component's state at the time of the call.
        /// </param>
        /// <param name="callback">the callback to execute when results become available</param>
        /// <exception cref="Error_CannotGetParent">
        /// Thrown if the parent of this object is null.
        /// </exception>
        public void RequestExportResource(ICpResource exportThis, System.Uri sendHere, object Tag, CpMediaDelegates.Delegate_ResultExportResource callback)
        {
            // calls parent's implementation of method
            CpMediaContainer parent = (CpMediaContainer)this.Parent;

            parent.RequestExportResource(exportThis, sendHere, Tag, callback);
        }