Trait itunes_com::wrappers::IITObjectWrapper
source · pub trait IITObjectWrapper: ComObjectWrapper {
// Provided methods
fn GetITObjectIDs(&self) -> Result<ObjectIDs> { ... }
fn Name(&self) -> Result<String> { ... }
fn set_Name(&mut self, Name: &str) -> Result<()> { ... }
fn Index(&self) -> Result<i32> { ... }
fn sourceID(&self) -> Result<i32> { ... }
fn playlistID(&self) -> Result<i32> { ... }
fn trackID(&self) -> Result<i32> { ... }
fn TrackDatabaseID(&self) -> Result<i32> { ... }
}Expand description
Many COM objects inherit from this class, which provides some extra methods
Provided Methods§
sourcefn GetITObjectIDs(&self) -> Result<ObjectIDs>
fn GetITObjectIDs(&self) -> Result<ObjectIDs>
Returns the four IDs that uniquely identify this object.
Examples found in repository?
examples/wrappers.rs (line 65)
60 61 62 63 64 65 66 67 68 69 70 71 72
fn test_unique_ids(iTunes: &itunes_com::wrappers::iTunes) -> windows::core::Result<()> {
let library_playlist = iTunes.LibraryPlaylist()?;
let first_track = library_playlist.Tracks()?.ItemByPlayOrder(1)?;
println!("First track is {}", first_track.Name()?);
let ids = first_track.GetITObjectIDs()?;
println!(" IDs = {:?}", ids);
let retrieved = iTunes.GetITObjectByID(ids)?;
println!(" OK: {:?}", retrieved.as_track().map(|t| t.Name()));
Ok(())
}sourcefn Name(&self) -> Result<String>
fn Name(&self) -> Result<String>
The name of the object.
Examples found in repository?
examples/wrappers.rs (line 36)
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
fn show_playlists(iTunes: &itunes_com::wrappers::iTunes) -> windows::core::Result<()> {
let sources = iTunes.Sources()?;
for source in sources.iter()? {
let kind = source.Kind()?;
println!("Source kind: {:?}", kind);
if kind == ITSourceKind::ITSourceKindLibrary {
for pl in source.Playlists()?.iter()? {
let pl_kind = pl.Kind()?;
let tracks = pl.Tracks()?;
let track_count = tracks.iter()?.len();
let first_track = tracks.ItemByPlayOrder(1);
let first_track_name = first_track.and_then(|t| t.Name()).unwrap_or(String::from("<no track>"));
println!(" * {}\t{:?}: {} tracks (first one is {})", pl.Name()?, pl_kind, track_count, first_track_name);
}
}
}
Ok(())
}
fn search_tracks(iTunes: &itunes_com::wrappers::iTunes, search_text: &str) -> windows::core::Result<()> {
println!("Searching for \"{}\"...", search_text);
let library_playlist = iTunes.LibraryPlaylist()?;
let results = library_playlist.Search(search_text.into(), ITPlaylistSearchField::ITPlaylistSearchFieldAll)?;
for result in results.iter()? {
let file_location = result.as_file_or_cd_track().map(|foct| foct.Location());
println!(" * {} at {:?}", result.Name()?, file_location);
}
Ok(())
}
fn test_unique_ids(iTunes: &itunes_com::wrappers::iTunes) -> windows::core::Result<()> {
let library_playlist = iTunes.LibraryPlaylist()?;
let first_track = library_playlist.Tracks()?.ItemByPlayOrder(1)?;
println!("First track is {}", first_track.Name()?);
let ids = first_track.GetITObjectIDs()?;
println!(" IDs = {:?}", ids);
let retrieved = iTunes.GetITObjectByID(ids)?;
println!(" OK: {:?}", retrieved.as_track().map(|t| t.Name()));
Ok(())
}sourcefn Index(&self) -> Result<i32>
fn Index(&self) -> Result<i32>
The index of the object in internal application order (1-based).
sourcefn playlistID(&self) -> Result<i32>
fn playlistID(&self) -> Result<i32>
The playlist ID of the object.
sourcefn TrackDatabaseID(&self) -> Result<i32>
fn TrackDatabaseID(&self) -> Result<i32>
The track database ID of the object.