/// <summary> /// This method will invoke a CDS browse request and provide the results /// directly the application-caller. /// <para> /// Implementation simply calls the parent owner's implementation of /// <see cref="CpMediaContainer.RequestBrowse "/>(ICpMedia, CpContentDirectory.Enum_A_ARG_TYPE_BrowseFlag, string, uint, uint, string). /// </para> /// </summary> /// <param name="BrowseFlag">browse metadata or direct children</param> /// <param name="Filter"> /// Comma-separated value list of metadata names to include /// in the response. For all metadata, use * character. /// </param> /// <param name="StartingIndex"> /// If obtaining children, the start index of the results. /// Otherwise set to zero. /// </param> /// <param name="RequestedCount"> /// If obtaining children the max number of child objects /// to retrieve. Otherwise use zero. /// </param> /// <param name="SortCriteria"> /// Comma-separated value list of metadata names to use for /// sorting, such that preceding each metadata name (but after /// the comma) a + or - character is present to indicate /// ascending or descending sort order for that property. /// </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="ApplicationException"> /// Thrown if the BrowseFlag value is BrowseDirectChildren because only the /// object's metadata can be obtained use browse. /// </exception> public void RequestBrowse(CpContentDirectory.Enum_A_ARG_TYPE_BrowseFlag BrowseFlag, string Filter, uint StartingIndex, uint RequestedCount, string SortCriteria, object Tag, CpMediaDelegates.Delegate_ResultBrowse callback) { if (BrowseFlag == CpContentDirectory.Enum_A_ARG_TYPE_BrowseFlag.BROWSEDIRECTCHILDREN) { throw new ApplicationException("BrowseFlag cannot be BROWSEDIRECTCHILDREN"); } CpMediaContainer parent = (CpMediaContainer)this.Parent; parent.RequestBrowse(this, BrowseFlag, Filter, StartingIndex, RequestedCount, SortCriteria, Tag, callback); }