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§

source

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(())
}
source

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(())
}
source

fn set_Name(&mut self, Name: &str) -> Result<()>

The name of the object.

source

fn Index(&self) -> Result<i32>

The index of the object in internal application order (1-based).

source

fn sourceID(&self) -> Result<i32>

The source ID of the object.

source

fn playlistID(&self) -> Result<i32>

The playlist ID of the object.

source

fn trackID(&self) -> Result<i32>

The track ID of the object.

source

fn TrackDatabaseID(&self) -> Result<i32>

The track database ID of the object.

Implementors§