1#![allow(non_snake_case)]
2
3use super::HRESULT;
6use super::BSTR;
7use super::VARIANT_BOOL;
8use super::IEnumVARIANT;
9
10use windows::Win32::System::Com::IDispatch;
11use windows::Win32::System::Com::IDispatch_Impl;
12use windows::Win32::System::Com::IDispatch_Vtbl;
13
14use windows::Win32::System::Com::VARIANT;
15
16use super::com_enums::*;
17
18type DATE = f64; type LONG = i32;
20type DOUBLE = f64;
21
22#[windows::core::interface("9FAB0E27-70D7-4E3A-9965-B0C8B8869BB6")]
26pub unsafe trait IITObject : IDispatch {
27 pub unsafe fn GetITObjectIDs(&self, sourceID: *mut LONG, playlistID: *mut LONG, trackID: *mut LONG, databaseID: *mut LONG) -> HRESULT;
29 pub unsafe fn Name(&self, Name: *mut BSTR) -> HRESULT;
31 pub unsafe fn set_Name(&self, Name: BSTR) -> HRESULT;
33 pub unsafe fn Index(&self, Index: *mut LONG) -> HRESULT;
35 pub unsafe fn sourceID(&self, sourceID: *mut LONG) -> HRESULT;
37 pub unsafe fn playlistID(&self, playlistID: *mut LONG) -> HRESULT;
39 pub unsafe fn trackID(&self, trackID: *mut LONG) -> HRESULT;
41 pub unsafe fn TrackDatabaseID(&self, databaseID: *mut LONG) -> HRESULT;
43}
44
45#[windows::core::interface("AEC1C4D3-AEF1-4255-B892-3E3D13ADFDF9")]
49pub unsafe trait IITSource : IITObject {
50 pub unsafe fn Kind(&self, Kind: *mut ITSourceKind) -> HRESULT;
52 pub unsafe fn Capacity(&self, Capacity: *mut DOUBLE) -> HRESULT;
54 pub unsafe fn FreeSpace(&self, FreeSpace: *mut DOUBLE) -> HRESULT;
56 pub unsafe fn Playlists(&self, iPlaylistCollection: *mut Option<IITPlaylistCollection>) -> HRESULT;
58}
59
60#[windows::core::interface("FF194254-909D-4437-9C50-3AAC2AE6305C")]
64pub unsafe trait IITPlaylistCollection : IDispatch {
65 pub unsafe fn Count(&self, Count: *mut LONG) -> HRESULT;
67 pub unsafe fn Item(&self, Index: LONG, iPlaylist: *mut Option<IITPlaylist>) -> HRESULT;
69 pub unsafe fn ItemByName(&self, Name: BSTR, iPlaylist: *mut Option<IITPlaylist>) -> HRESULT;
71 pub unsafe fn _NewEnum(&self, iEnumerator: *mut Option<IEnumVARIANT>) -> HRESULT;
76 pub unsafe fn ItemByPersistentID(&self, highID: LONG, lowID: LONG, iPlaylist: *mut Option<IITPlaylist>) -> HRESULT;
78}
79
80#[windows::core::interface("3D5E072F-2A77-4B17-9E73-E03B77CCCCA9")]
84pub unsafe trait IITPlaylist : IITObject {
85 pub unsafe fn Delete(&self) -> HRESULT;
87 pub unsafe fn PlayFirstTrack(&self) -> HRESULT;
89 pub unsafe fn Print(&self, showPrintDialog: VARIANT_BOOL, printKind: ITPlaylistPrintKind, theme: BSTR) -> HRESULT;
91 pub unsafe fn Search(&self, searchText: BSTR, searchFields: ITPlaylistSearchField, iTrackCollection: *mut Option<IITTrackCollection>) -> HRESULT;
93 pub unsafe fn Kind(&self, Kind: *mut ITPlaylistKind) -> HRESULT;
95 pub unsafe fn Source(&self, iSource: *mut Option<IITSource>) -> HRESULT;
97 pub unsafe fn Duration(&self, Duration: *mut LONG) -> HRESULT;
99 pub unsafe fn Shuffle(&self, isShuffle: *mut VARIANT_BOOL) -> HRESULT;
101 pub unsafe fn set_Shuffle(&self, isShuffle: VARIANT_BOOL) -> HRESULT;
103 pub unsafe fn Size(&self, Size: *mut DOUBLE) -> HRESULT;
105 pub unsafe fn SongRepeat(&self, repeatMode: *mut ITPlaylistRepeatMode) -> HRESULT;
107 pub unsafe fn set_SongRepeat(&self, repeatMode: ITPlaylistRepeatMode) -> HRESULT;
109 pub unsafe fn Time(&self, Time: *mut BSTR) -> HRESULT;
111 pub unsafe fn Visible(&self, isVisible: *mut VARIANT_BOOL) -> HRESULT;
113 pub unsafe fn Tracks(&self, iTrackCollection: *mut Option<IITTrackCollection>) -> HRESULT;
115}
116
117#[windows::core::interface("755D76F1-6B85-4CE4-8F5F-F88D9743DCD8")]
121pub unsafe trait IITTrackCollection : IDispatch {
122 pub unsafe fn Count(&self, Count: *mut LONG) -> HRESULT;
124 pub unsafe fn Item(&self, Index: LONG, iTrack: *mut Option<IITTrack>) -> HRESULT;
126 pub unsafe fn ItemByPlayOrder(&self, Index: LONG, iTrack: *mut Option<IITTrack>) -> HRESULT;
128 pub unsafe fn ItemByName(&self, Name: BSTR, iTrack: *mut Option<IITTrack>) -> HRESULT;
130 pub unsafe fn _NewEnum(&self, iEnumerator: *mut Option<IEnumVARIANT>) -> HRESULT;
135 pub unsafe fn ItemByPersistentID(&self, highID: LONG, lowID: LONG, iTrack: *mut Option<IITTrack>) -> HRESULT;
137}
138
139#[windows::core::interface("4CB0915D-1E54-4727-BAF3-CE6CC9A225A1")]
143pub unsafe trait IITTrack : IITObject {
144 pub unsafe fn Delete(&self) -> HRESULT;
146 pub unsafe fn Play(&self) -> HRESULT;
148 pub unsafe fn AddArtworkFromFile(&self, filePath: BSTR, iArtwork: *mut Option<IITArtwork>) -> HRESULT;
150 pub unsafe fn Kind(&self, Kind: *mut ITTrackKind) -> HRESULT;
152 pub unsafe fn Playlist(&self, iPlaylist: *mut Option<IITPlaylist>) -> HRESULT;
154 pub unsafe fn Album(&self, Album: *mut BSTR) -> HRESULT;
156 pub unsafe fn set_Album(&self, Album: BSTR) -> HRESULT;
158 pub unsafe fn Artist(&self, Artist: *mut BSTR) -> HRESULT;
160 pub unsafe fn set_Artist(&self, Artist: BSTR) -> HRESULT;
162 pub unsafe fn BitRate(&self, BitRate: *mut LONG) -> HRESULT;
164 pub unsafe fn BPM(&self, beatsPerMinute: *mut LONG) -> HRESULT;
166 pub unsafe fn set_BPM(&self, beatsPerMinute: LONG) -> HRESULT;
168 pub unsafe fn Comment(&self, Comment: *mut BSTR) -> HRESULT;
170 pub unsafe fn set_Comment(&self, Comment: BSTR) -> HRESULT;
172 pub unsafe fn Compilation(&self, isCompilation: *mut VARIANT_BOOL) -> HRESULT;
174 pub unsafe fn set_Compilation(&self, isCompilation: VARIANT_BOOL) -> HRESULT;
176 pub unsafe fn Composer(&self, Composer: *mut BSTR) -> HRESULT;
178 pub unsafe fn set_Composer(&self, Composer: BSTR) -> HRESULT;
180 pub unsafe fn DateAdded(&self, DateAdded: *mut DATE) -> HRESULT;
182 pub unsafe fn DiscCount(&self, DiscCount: *mut LONG) -> HRESULT;
184 pub unsafe fn set_DiscCount(&self, DiscCount: LONG) -> HRESULT;
186 pub unsafe fn DiscNumber(&self, DiscNumber: *mut LONG) -> HRESULT;
188 pub unsafe fn set_DiscNumber(&self, DiscNumber: LONG) -> HRESULT;
190 pub unsafe fn Duration(&self, Duration: *mut LONG) -> HRESULT;
192 pub unsafe fn Enabled(&self, isEnabled: *mut VARIANT_BOOL) -> HRESULT;
194 pub unsafe fn set_Enabled(&self, isEnabled: VARIANT_BOOL) -> HRESULT;
196 pub unsafe fn EQ(&self, EQ: *mut BSTR) -> HRESULT;
198 pub unsafe fn set_EQ(&self, EQ: BSTR) -> HRESULT;
200 pub unsafe fn set_Finish(&self, Finish: LONG) -> HRESULT;
202 pub unsafe fn Finish(&self, Finish: *mut LONG) -> HRESULT;
204 pub unsafe fn Genre(&self, Genre: *mut BSTR) -> HRESULT;
206 pub unsafe fn set_Genre(&self, Genre: BSTR) -> HRESULT;
208 pub unsafe fn Grouping(&self, Grouping: *mut BSTR) -> HRESULT;
210 pub unsafe fn set_Grouping(&self, Grouping: BSTR) -> HRESULT;
212 pub unsafe fn KindAsString(&self, Kind: *mut BSTR) -> HRESULT;
214 pub unsafe fn ModificationDate(&self, dateModified: *mut DATE) -> HRESULT;
216 pub unsafe fn PlayedCount(&self, PlayedCount: *mut LONG) -> HRESULT;
218 pub unsafe fn set_PlayedCount(&self, PlayedCount: LONG) -> HRESULT;
220 pub unsafe fn PlayedDate(&self, PlayedDate: *mut DATE) -> HRESULT;
222 pub unsafe fn set_PlayedDate(&self, PlayedDate: DATE) -> HRESULT;
224 pub unsafe fn PlayOrderIndex(&self, Index: *mut LONG) -> HRESULT;
226 pub unsafe fn Rating(&self, Rating: *mut LONG) -> HRESULT;
228 pub unsafe fn set_Rating(&self, Rating: LONG) -> HRESULT;
230 pub unsafe fn SampleRate(&self, SampleRate: *mut LONG) -> HRESULT;
232 pub unsafe fn Size(&self, Size: *mut LONG) -> HRESULT;
234 pub unsafe fn Start(&self, Start: *mut LONG) -> HRESULT;
236 pub unsafe fn set_Start(&self, Start: LONG) -> HRESULT;
238 pub unsafe fn Time(&self, Time: *mut BSTR) -> HRESULT;
240 pub unsafe fn TrackCount(&self, TrackCount: *mut LONG) -> HRESULT;
242 pub unsafe fn set_TrackCount(&self, TrackCount: LONG) -> HRESULT;
244 pub unsafe fn TrackNumber(&self, TrackNumber: *mut LONG) -> HRESULT;
246 pub unsafe fn set_TrackNumber(&self, TrackNumber: LONG) -> HRESULT;
248 pub unsafe fn VolumeAdjustment(&self, VolumeAdjustment: *mut LONG) -> HRESULT;
250 pub unsafe fn set_VolumeAdjustment(&self, VolumeAdjustment: LONG) -> HRESULT;
252 pub unsafe fn Year(&self, Year: *mut LONG) -> HRESULT;
254 pub unsafe fn set_Year(&self, Year: LONG) -> HRESULT;
256 pub unsafe fn Artwork(&self, iArtworkCollection: *mut Option<IITArtworkCollection>) -> HRESULT;
258}
259
260#[windows::core::interface("D0A6C1F8-BF3D-4CD8-AC47-FE32BDD17257")]
264pub unsafe trait IITArtwork : IDispatch {
265 pub unsafe fn Delete(&self) -> HRESULT;
267 pub unsafe fn SetArtworkFromFile(&self, filePath: BSTR) -> HRESULT;
269 pub unsafe fn SaveArtworkToFile(&self, filePath: BSTR) -> HRESULT;
271 pub unsafe fn Format(&self, Format: *mut ITArtworkFormat) -> HRESULT;
273 pub unsafe fn IsDownloadedArtwork(&self, IsDownloadedArtwork: *mut VARIANT_BOOL) -> HRESULT;
275 pub unsafe fn Description(&self, Description: *mut BSTR) -> HRESULT;
277 pub unsafe fn set_Description(&self, Description: BSTR) -> HRESULT;
279}
280
281#[windows::core::interface("BF2742D7-418C-4858-9AF9-2981B062D23E")]
285pub unsafe trait IITArtworkCollection : IDispatch {
286 pub unsafe fn Count(&self, Count: *mut LONG) -> HRESULT;
288 pub unsafe fn Item(&self, Index: LONG, iArtwork: *mut Option<IITArtwork>) -> HRESULT;
290 pub unsafe fn _NewEnum(&self, iEnumerator: *mut Option<IEnumVARIANT>) -> HRESULT;
295}
296
297#[windows::core::interface("2FF6CE20-FF87-4183-B0B3-F323D047AF41")]
301pub unsafe trait IITSourceCollection : IDispatch {
302 pub unsafe fn Count(&self, Count: *mut LONG) -> HRESULT;
304 pub unsafe fn Item(&self, Index: LONG, iSource: *mut Option<IITSource>) -> HRESULT;
306 pub unsafe fn ItemByName(&self, Name: BSTR, iSource: *mut Option<IITSource>) -> HRESULT;
308 pub unsafe fn _NewEnum(&self, iEnumerator: *mut Option<IEnumVARIANT>) -> HRESULT;
313 pub unsafe fn ItemByPersistentID(&self, highID: LONG, lowID: LONG, iSource: *mut Option<IITSource>) -> HRESULT;
315}
316
317#[windows::core::interface("1CF95A1C-55FE-4F45-A2D3-85AC6C504A73")]
321pub unsafe trait IITEncoder : IDispatch {
322 pub unsafe fn Name(&self, Name: *mut BSTR) -> HRESULT;
324 pub unsafe fn Format(&self, Format: *mut BSTR) -> HRESULT;
326}
327
328#[windows::core::interface("8862BCA9-168D-4549-A9D5-ADB35E553BA6")]
332pub unsafe trait IITEncoderCollection : IDispatch {
333 pub unsafe fn Count(&self, Count: *mut LONG) -> HRESULT;
335 pub unsafe fn Item(&self, Index: LONG, iEncoder: *mut Option<IITEncoder>) -> HRESULT;
337 pub unsafe fn ItemByName(&self, Name: BSTR, iEncoder: *mut Option<IITEncoder>) -> HRESULT;
339 pub unsafe fn _NewEnum(&self, iEnumerator: *mut Option<IEnumVARIANT>) -> HRESULT;
344}
345
346#[windows::core::interface("5BE75F4F-68FA-4212-ACB7-BE44EA569759")]
350pub unsafe trait IITEQPreset : IDispatch {
351 pub unsafe fn Name(&self, Name: *mut BSTR) -> HRESULT;
353 pub unsafe fn Modifiable(&self, isModifiable: *mut VARIANT_BOOL) -> HRESULT;
355 pub unsafe fn Preamp(&self, level: *mut DOUBLE) -> HRESULT;
357 pub unsafe fn set_Preamp(&self, level: DOUBLE) -> HRESULT;
359 pub unsafe fn Band1(&self, level: *mut DOUBLE) -> HRESULT;
361 pub unsafe fn set_Band1(&self, level: DOUBLE) -> HRESULT;
363 pub unsafe fn Band2(&self, level: *mut DOUBLE) -> HRESULT;
365 pub unsafe fn set_Band2(&self, level: DOUBLE) -> HRESULT;
367 pub unsafe fn Band3(&self, level: *mut DOUBLE) -> HRESULT;
369 pub unsafe fn set_Band3(&self, level: DOUBLE) -> HRESULT;
371 pub unsafe fn Band4(&self, level: *mut DOUBLE) -> HRESULT;
373 pub unsafe fn set_Band4(&self, level: DOUBLE) -> HRESULT;
375 pub unsafe fn Band5(&self, level: *mut DOUBLE) -> HRESULT;
377 pub unsafe fn set_Band5(&self, level: DOUBLE) -> HRESULT;
379 pub unsafe fn Band6(&self, level: *mut DOUBLE) -> HRESULT;
381 pub unsafe fn set_Band6(&self, level: DOUBLE) -> HRESULT;
383 pub unsafe fn Band7(&self, level: *mut DOUBLE) -> HRESULT;
385 pub unsafe fn set_Band7(&self, level: DOUBLE) -> HRESULT;
387 pub unsafe fn Band8(&self, level: *mut DOUBLE) -> HRESULT;
389 pub unsafe fn set_Band8(&self, level: DOUBLE) -> HRESULT;
391 pub unsafe fn Band9(&self, level: *mut DOUBLE) -> HRESULT;
393 pub unsafe fn set_Band9(&self, level: DOUBLE) -> HRESULT;
395 pub unsafe fn Band10(&self, level: *mut DOUBLE) -> HRESULT;
397 pub unsafe fn set_Band10(&self, level: DOUBLE) -> HRESULT;
399 pub unsafe fn Delete(&self, updateAllTracks: VARIANT_BOOL) -> HRESULT;
401 pub unsafe fn Rename(&self, newName: BSTR, updateAllTracks: VARIANT_BOOL) -> HRESULT;
403}
404
405#[windows::core::interface("AEF4D111-3331-48DA-B0C2-B468D5D61D08")]
409pub unsafe trait IITEQPresetCollection : IDispatch {
410 pub unsafe fn Count(&self, Count: *mut LONG) -> HRESULT;
412 pub unsafe fn Item(&self, Index: LONG, iEQPreset: *mut Option<IITEQPreset>) -> HRESULT;
414 pub unsafe fn ItemByName(&self, Name: BSTR, iEQPreset: *mut Option<IITEQPreset>) -> HRESULT;
416 pub unsafe fn _NewEnum(&self, iEnumerator: *mut Option<IEnumVARIANT>) -> HRESULT;
421}
422
423#[windows::core::interface("206479C9-FE32-4F9B-A18A-475AC939B479")]
427pub unsafe trait IITOperationStatus : IDispatch {
428 pub unsafe fn InProgress(&self, isInProgress: *mut VARIANT_BOOL) -> HRESULT;
430 pub unsafe fn Tracks(&self, iTrackCollection: *mut Option<IITTrackCollection>) -> HRESULT;
432}
433
434#[windows::core::interface("7063AAF6-ABA0-493B-B4FC-920A9F105875")]
438pub unsafe trait IITConvertOperationStatus : IITOperationStatus {
439 pub unsafe fn GetConversionStatus(&self, trackName: *mut BSTR, progressValue: *mut LONG, maxProgressValue: *mut LONG) -> HRESULT;
441 pub unsafe fn StopConversion(&self) -> HRESULT;
443 pub unsafe fn trackName(&self, trackName: *mut BSTR) -> HRESULT;
445 pub unsafe fn progressValue(&self, progressValue: *mut LONG) -> HRESULT;
447 pub unsafe fn maxProgressValue(&self, maxProgressValue: *mut LONG) -> HRESULT;
449}
450
451#[windows::core::interface("53AE1704-491C-4289-94A0-958815675A3D")]
455pub unsafe trait IITLibraryPlaylist : IITPlaylist {
456 pub unsafe fn AddFile(&self, filePath: BSTR, iStatus: *mut Option<IITOperationStatus>) -> HRESULT;
458 pub unsafe fn AddFiles(&self, filePaths: *const VARIANT, iStatus: *mut Option<IITOperationStatus>) -> HRESULT;
460 pub unsafe fn AddURL(&self, URL: BSTR, iURLTrack: *mut Option<IITURLTrack>) -> HRESULT;
462 pub unsafe fn AddTrack(&self, iTrackToAdd: *const VARIANT, iAddedTrack: *mut Option<IITTrack>) -> HRESULT;
464}
465
466#[windows::core::interface("1116E3B5-29FD-4393-A7BD-454E5E327900")]
470pub unsafe trait IITURLTrack : IITTrack {
471 pub unsafe fn URL(&self, URL: *mut BSTR) -> HRESULT;
473 pub unsafe fn set_URL(&self, URL: BSTR) -> HRESULT;
475 pub unsafe fn Podcast(&self, isPodcast: *mut VARIANT_BOOL) -> HRESULT;
477 pub unsafe fn UpdatePodcastFeed(&self) -> HRESULT;
479 pub unsafe fn DownloadPodcastEpisode(&self) -> HRESULT;
481 pub unsafe fn Category(&self, Category: *mut BSTR) -> HRESULT;
483 pub unsafe fn set_Category(&self, Category: BSTR) -> HRESULT;
485 pub unsafe fn Description(&self, Description: *mut BSTR) -> HRESULT;
487 pub unsafe fn set_Description(&self, Description: BSTR) -> HRESULT;
489 pub unsafe fn LongDescription(&self, LongDescription: *mut BSTR) -> HRESULT;
491 pub unsafe fn set_LongDescription(&self, LongDescription: BSTR) -> HRESULT;
493 pub unsafe fn Reveal(&self) -> HRESULT;
495 pub unsafe fn AlbumRating(&self, Rating: *mut LONG) -> HRESULT;
497 pub unsafe fn set_AlbumRating(&self, Rating: LONG) -> HRESULT;
499 pub unsafe fn AlbumRatingKind(&self, ratingKind: *mut ITRatingKind) -> HRESULT;
501 pub unsafe fn ratingKind(&self, ratingKind: *mut ITRatingKind) -> HRESULT;
503 pub unsafe fn Playlists(&self, iPlaylistCollection: *mut Option<IITPlaylistCollection>) -> HRESULT;
505}
506
507#[windows::core::interface("0A504DED-A0B5-465A-8A94-50E20D7DF692")]
511pub unsafe trait IITUserPlaylist : IITPlaylist {
512 pub unsafe fn AddFile(&self, filePath: BSTR, iStatus: *mut Option<IITOperationStatus>) -> HRESULT;
514 pub unsafe fn AddFiles(&self, filePaths: *const VARIANT, iStatus: *mut Option<IITOperationStatus>) -> HRESULT;
516 pub unsafe fn AddURL(&self, URL: BSTR, iURLTrack: *mut Option<IITURLTrack>) -> HRESULT;
518 pub unsafe fn AddTrack(&self, iTrackToAdd: *const VARIANT, iAddedTrack: *mut Option<IITTrack>) -> HRESULT;
520 pub unsafe fn Shared(&self, isShared: *mut VARIANT_BOOL) -> HRESULT;
522 pub unsafe fn set_Shared(&self, isShared: VARIANT_BOOL) -> HRESULT;
524 pub unsafe fn Smart(&self, isSmart: *mut VARIANT_BOOL) -> HRESULT;
526 pub unsafe fn SpecialKind(&self, SpecialKind: *mut ITUserPlaylistSpecialKind) -> HRESULT;
528 pub unsafe fn Parent(&self, iParentPlayList: *mut Option<IITUserPlaylist>) -> HRESULT;
530 pub unsafe fn CreatePlaylist(&self, playlistName: BSTR, iPlaylist: *mut Option<IITPlaylist>) -> HRESULT;
532 pub unsafe fn CreateFolder(&self, folderName: BSTR, iFolder: *mut Option<IITPlaylist>) -> HRESULT;
534 pub unsafe fn set_Parent(&self, iParentPlayList: *const VARIANT) -> HRESULT;
536 pub unsafe fn Reveal(&self) -> HRESULT;
538}
539
540#[windows::core::interface("340F3315-ED72-4C09-9ACF-21EB4BDF9931")]
544pub unsafe trait IITVisual : IDispatch {
545 pub unsafe fn Name(&self, Name: *mut BSTR) -> HRESULT;
547}
548
549#[windows::core::interface("88A4CCDD-114F-4043-B69B-84D4E6274957")]
553pub unsafe trait IITVisualCollection : IDispatch {
554 pub unsafe fn Count(&self, Count: *mut LONG) -> HRESULT;
556 pub unsafe fn Item(&self, Index: LONG, iVisual: *mut Option<IITVisual>) -> HRESULT;
558 pub unsafe fn ItemByName(&self, Name: BSTR, iVisual: *mut Option<IITVisual>) -> HRESULT;
560 pub unsafe fn _NewEnum(&self, iEnumerator: *mut Option<IEnumVARIANT>) -> HRESULT;
565}
566
567#[windows::core::interface("370D7BE0-3A89-4A42-B902-C75FC138BE09")]
571pub unsafe trait IITWindow : IDispatch {
572 pub unsafe fn Name(&self, Name: *mut BSTR) -> HRESULT;
574 pub unsafe fn Kind(&self, Kind: *mut ITWindowKind) -> HRESULT;
576 pub unsafe fn Visible(&self, isVisible: *mut VARIANT_BOOL) -> HRESULT;
578 pub unsafe fn set_Visible(&self, isVisible: VARIANT_BOOL) -> HRESULT;
580 pub unsafe fn Resizable(&self, isResizable: *mut VARIANT_BOOL) -> HRESULT;
582 pub unsafe fn Minimized(&self, isMinimized: *mut VARIANT_BOOL) -> HRESULT;
584 pub unsafe fn set_Minimized(&self, isMinimized: VARIANT_BOOL) -> HRESULT;
586 pub unsafe fn Maximizable(&self, isMaximizable: *mut VARIANT_BOOL) -> HRESULT;
588 pub unsafe fn Maximized(&self, isMaximized: *mut VARIANT_BOOL) -> HRESULT;
590 pub unsafe fn set_Maximized(&self, isMaximized: VARIANT_BOOL) -> HRESULT;
592 pub unsafe fn Zoomable(&self, isZoomable: *mut VARIANT_BOOL) -> HRESULT;
594 pub unsafe fn Zoomed(&self, isZoomed: *mut VARIANT_BOOL) -> HRESULT;
596 pub unsafe fn set_Zoomed(&self, isZoomed: VARIANT_BOOL) -> HRESULT;
598 pub unsafe fn Top(&self, Top: *mut LONG) -> HRESULT;
600 pub unsafe fn set_Top(&self, Top: LONG) -> HRESULT;
602 pub unsafe fn Left(&self, Left: *mut LONG) -> HRESULT;
604 pub unsafe fn set_Left(&self, Left: LONG) -> HRESULT;
606 pub unsafe fn Bottom(&self, Bottom: *mut LONG) -> HRESULT;
608 pub unsafe fn set_Bottom(&self, Bottom: LONG) -> HRESULT;
610 pub unsafe fn Right(&self, Right: *mut LONG) -> HRESULT;
612 pub unsafe fn set_Right(&self, Right: LONG) -> HRESULT;
614 pub unsafe fn Width(&self, Width: *mut LONG) -> HRESULT;
616 pub unsafe fn set_Width(&self, Width: LONG) -> HRESULT;
618 pub unsafe fn Height(&self, Height: *mut LONG) -> HRESULT;
620 pub unsafe fn set_Height(&self, Height: LONG) -> HRESULT;
622}
623
624#[windows::core::interface("C999F455-C4D5-4AA4-8277-F99753699974")]
628pub unsafe trait IITBrowserWindow : IITWindow {
629 pub unsafe fn MiniPlayer(&self, isMiniPlayer: *mut VARIANT_BOOL) -> HRESULT;
631 pub unsafe fn set_MiniPlayer(&self, isMiniPlayer: VARIANT_BOOL) -> HRESULT;
633 pub unsafe fn SelectedTracks(&self, iTrackCollection: *mut Option<IITTrackCollection>) -> HRESULT;
635 pub unsafe fn SelectedPlaylist(&self, iPlaylist: *mut Option<IITPlaylist>) -> HRESULT;
637 pub unsafe fn set_SelectedPlaylist(&self, iPlaylist: *const VARIANT) -> HRESULT;
639}
640
641#[windows::core::interface("3D8DE381-6C0E-481F-A865-E2385F59FA43")]
645pub unsafe trait IITWindowCollection : IDispatch {
646 pub unsafe fn Count(&self, Count: *mut LONG) -> HRESULT;
648 pub unsafe fn Item(&self, Index: LONG, iWindow: *mut Option<IITWindow>) -> HRESULT;
650 pub unsafe fn ItemByName(&self, Name: BSTR, iWindow: *mut Option<IITWindow>) -> HRESULT;
652 pub unsafe fn _NewEnum(&self, iEnumerator: *mut Option<IEnumVARIANT>) -> HRESULT;
657}
658
659#[windows::core::interface("9DD6680B-3EDC-40DB-A771-E6FE4832E34A")]
663pub unsafe trait IiTunes : IDispatch {
664 pub unsafe fn BackTrack(&self) -> HRESULT;
666 pub unsafe fn FastForward(&self) -> HRESULT;
668 pub unsafe fn NextTrack(&self) -> HRESULT;
670 pub unsafe fn Pause(&self) -> HRESULT;
672 pub unsafe fn Play(&self) -> HRESULT;
674 pub unsafe fn PlayFile(&self, filePath: BSTR) -> HRESULT;
676 pub unsafe fn PlayPause(&self) -> HRESULT;
678 pub unsafe fn PreviousTrack(&self) -> HRESULT;
680 pub unsafe fn Resume(&self) -> HRESULT;
682 pub unsafe fn Rewind(&self) -> HRESULT;
684 pub unsafe fn Stop(&self) -> HRESULT;
686 pub unsafe fn ConvertFile(&self, filePath: BSTR, iStatus: *mut Option<IITOperationStatus>) -> HRESULT;
688 pub unsafe fn ConvertFiles(&self, filePaths: *const VARIANT, iStatus: *mut Option<IITOperationStatus>) -> HRESULT;
690 pub unsafe fn ConvertTrack(&self, iTrackToConvert: *const VARIANT, iStatus: *mut Option<IITOperationStatus>) -> HRESULT;
692 pub unsafe fn ConvertTracks(&self, iTracksToConvert: *const VARIANT, iStatus: *mut Option<IITOperationStatus>) -> HRESULT;
694 pub unsafe fn CheckVersion(&self, majorVersion: LONG, minorVersion: LONG, isCompatible: *mut VARIANT_BOOL) -> HRESULT;
696 pub unsafe fn GetITObjectByID(&self, sourceID: LONG, playlistID: LONG, trackID: LONG, databaseID: LONG, iObject: *mut Option<IITObject>) -> HRESULT;
698 pub unsafe fn CreatePlaylist(&self, playlistName: BSTR, iPlaylist: *mut Option<IITPlaylist>) -> HRESULT;
700 pub unsafe fn OpenURL(&self, URL: BSTR) -> HRESULT;
702 pub unsafe fn GotoMusicStoreHomePage(&self) -> HRESULT;
704 pub unsafe fn UpdateIPod(&self) -> HRESULT;
706 pub unsafe fn Authorize(&self, numElems: LONG, data: *const VARIANT, names: *const BSTR) -> HRESULT;
709 pub unsafe fn Quit(&self) -> HRESULT;
711 pub unsafe fn Sources(&self, iSourceCollection: *mut Option<IITSourceCollection>) -> HRESULT;
713 pub unsafe fn Encoders(&self, iEncoderCollection: *mut Option<IITEncoderCollection>) -> HRESULT;
715 pub unsafe fn EQPresets(&self, iEQPresetCollection: *mut Option<IITEQPresetCollection>) -> HRESULT;
717 pub unsafe fn Visuals(&self, iVisualCollection: *mut Option<IITVisualCollection>) -> HRESULT;
719 pub unsafe fn Windows(&self, iWindowCollection: *mut Option<IITWindowCollection>) -> HRESULT;
721 pub unsafe fn SoundVolume(&self, volume: *mut LONG) -> HRESULT;
723 pub unsafe fn set_SoundVolume(&self, volume: LONG) -> HRESULT;
725 pub unsafe fn Mute(&self, isMuted: *mut VARIANT_BOOL) -> HRESULT;
727 pub unsafe fn set_Mute(&self, isMuted: VARIANT_BOOL) -> HRESULT;
729 pub unsafe fn PlayerState(&self, PlayerState: *mut ITPlayerState) -> HRESULT;
731 pub unsafe fn PlayerPosition(&self, playerPos: *mut LONG) -> HRESULT;
733 pub unsafe fn set_PlayerPosition(&self, playerPos: LONG) -> HRESULT;
735 pub unsafe fn CurrentEncoder(&self, iEncoder: *mut Option<IITEncoder>) -> HRESULT;
737 pub unsafe fn set_CurrentEncoder(&self, iEncoder: *const IITEncoder) -> HRESULT;
739 pub unsafe fn VisualsEnabled(&self, isEnabled: *mut VARIANT_BOOL) -> HRESULT;
741 pub unsafe fn set_VisualsEnabled(&self, isEnabled: VARIANT_BOOL) -> HRESULT;
743 pub unsafe fn FullScreenVisuals(&self, isFullScreen: *mut VARIANT_BOOL) -> HRESULT;
745 pub unsafe fn set_FullScreenVisuals(&self, isFullScreen: VARIANT_BOOL) -> HRESULT;
747 pub unsafe fn VisualSize(&self, VisualSize: *mut ITVisualSize) -> HRESULT;
749 pub unsafe fn set_VisualSize(&self, VisualSize: ITVisualSize) -> HRESULT;
751 pub unsafe fn CurrentVisual(&self, iVisual: *mut Option<IITVisual>) -> HRESULT;
753 pub unsafe fn set_CurrentVisual(&self, iVisual: *const IITVisual) -> HRESULT;
755 pub unsafe fn EQEnabled(&self, isEnabled: *mut VARIANT_BOOL) -> HRESULT;
757 pub unsafe fn set_EQEnabled(&self, isEnabled: VARIANT_BOOL) -> HRESULT;
759 pub unsafe fn CurrentEQPreset(&self, iEQPreset: *mut Option<IITEQPreset>) -> HRESULT;
761 pub unsafe fn set_CurrentEQPreset(&self, iEQPreset: *const IITEQPreset) -> HRESULT;
763 pub unsafe fn CurrentStreamTitle(&self, streamTitle: *mut BSTR) -> HRESULT;
765 pub unsafe fn set_CurrentStreamURL(&self, streamURL: *mut BSTR) -> HRESULT;
767 pub unsafe fn BrowserWindow(&self, iBrowserWindow: *mut Option<IITBrowserWindow>) -> HRESULT;
769 pub unsafe fn EQWindow(&self, iEQWindow: *mut Option<IITWindow>) -> HRESULT;
771 pub unsafe fn LibrarySource(&self, iLibrarySource: *mut Option<IITSource>) -> HRESULT;
773 pub unsafe fn LibraryPlaylist(&self, iLibraryPlaylist: *mut Option<IITLibraryPlaylist>) -> HRESULT;
775 pub unsafe fn CurrentTrack(&self, iTrack: *mut Option<IITTrack>) -> HRESULT;
777 pub unsafe fn CurrentPlaylist(&self, iPlaylist: *mut Option<IITPlaylist>) -> HRESULT;
779 pub unsafe fn SelectedTracks(&self, iTrackCollection: *mut Option<IITTrackCollection>) -> HRESULT;
781 pub unsafe fn Version(&self, Version: *mut BSTR) -> HRESULT;
783 pub unsafe fn SetOptions(&self, options: LONG) -> HRESULT;
786 pub unsafe fn ConvertFile2(&self, filePath: BSTR, iStatus: *mut Option<IITConvertOperationStatus>) -> HRESULT;
788 pub unsafe fn ConvertFiles2(&self, filePaths: *const VARIANT, iStatus: *mut Option<IITConvertOperationStatus>) -> HRESULT;
790 pub unsafe fn ConvertTrack2(&self, iTrackToConvert: *const VARIANT, iStatus: *mut Option<IITConvertOperationStatus>) -> HRESULT;
792 pub unsafe fn ConvertTracks2(&self, iTracksToConvert: *const VARIANT, iStatus: *mut Option<IITConvertOperationStatus>) -> HRESULT;
794 pub unsafe fn AppCommandMessageProcessingEnabled(&self, isEnabled: *mut VARIANT_BOOL) -> HRESULT;
796 pub unsafe fn set_AppCommandMessageProcessingEnabled(&self, isEnabled: VARIANT_BOOL) -> HRESULT;
798 pub unsafe fn ForceToForegroundOnDialog(&self, ForceToForegroundOnDialog: *mut VARIANT_BOOL) -> HRESULT;
800 pub unsafe fn set_ForceToForegroundOnDialog(&self, ForceToForegroundOnDialog: VARIANT_BOOL) -> HRESULT;
802 pub unsafe fn CreateEQPreset(&self, eqPresetName: BSTR, iEQPreset: *mut Option<IITEQPreset>) -> HRESULT;
804 pub unsafe fn CreatePlaylistInSource(&self, playlistName: BSTR, iSource: *const VARIANT, iPlaylist: *mut Option<IITPlaylist>) -> HRESULT;
806 pub unsafe fn GetPlayerButtonsState(&self, previousEnabled: *mut VARIANT_BOOL, playPauseStopState: *mut ITPlayButtonState, nextEnabled: *mut VARIANT_BOOL) -> HRESULT;
808 pub unsafe fn PlayerButtonClicked(&self, playerButton: ITPlayerButton, playerButtonModifierKeys: LONG) -> HRESULT;
810 pub unsafe fn CanSetShuffle(&self, iPlaylist: *const VARIANT, CanSetShuffle: *mut VARIANT_BOOL) -> HRESULT;
812 pub unsafe fn CanSetSongRepeat(&self, iPlaylist: *const VARIANT, CanSetSongRepeat: *mut VARIANT_BOOL) -> HRESULT;
814 pub unsafe fn ConvertOperationStatus(&self, iStatus: *mut Option<IITConvertOperationStatus>) -> HRESULT;
816 pub unsafe fn SubscribeToPodcast(&self, URL: BSTR) -> HRESULT;
818 pub unsafe fn UpdatePodcastFeeds(&self) -> HRESULT;
820 pub unsafe fn CreateFolder(&self, folderName: BSTR, iFolder: *mut Option<IITPlaylist>) -> HRESULT;
822 pub unsafe fn CreateFolderInSource(&self, folderName: BSTR, iSource: *const VARIANT, iFolder: *mut Option<IITPlaylist>) -> HRESULT;
824 pub unsafe fn SoundVolumeControlEnabled(&self, isEnabled: *mut VARIANT_BOOL) -> HRESULT;
826 pub unsafe fn LibraryXMLPath(&self, filePath: *mut BSTR) -> HRESULT;
828 pub unsafe fn ITObjectPersistentIDHigh(&self, iObject: *const VARIANT, highID: *mut LONG) -> HRESULT;
830 pub unsafe fn ITObjectPersistentIDLow(&self, iObject: *const VARIANT, lowID: *mut LONG) -> HRESULT;
832 pub unsafe fn GetITObjectPersistentIDs(&self, iObject: *const VARIANT, highID: *mut LONG, lowID: *mut LONG) -> HRESULT;
834 pub unsafe fn PlayerPositionMS(&self, playerPos: *mut LONG) -> HRESULT;
836 pub unsafe fn set_PlayerPositionMS(&self, playerPos: LONG) -> HRESULT;
838}
839
840#[windows::core::interface("CF496DF3-0FED-4D7D-9BD8-529B6E8A082E")]
844pub unsafe trait IITAudioCDPlaylist : IITPlaylist {
845 pub unsafe fn Artist(&self, Artist: *mut BSTR) -> HRESULT;
847 pub unsafe fn Compilation(&self, isCompiliation: *mut VARIANT_BOOL) -> HRESULT;
849 pub unsafe fn Composer(&self, Composer: *mut BSTR) -> HRESULT;
851 pub unsafe fn DiscCount(&self, DiscCount: *mut LONG) -> HRESULT;
853 pub unsafe fn DiscNumber(&self, DiscNumber: *mut LONG) -> HRESULT;
855 pub unsafe fn Genre(&self, Genre: *mut BSTR) -> HRESULT;
857 pub unsafe fn Year(&self, Year: *mut LONG) -> HRESULT;
859 pub unsafe fn Reveal(&self) -> HRESULT;
861}
862
863#[windows::core::interface("CF4D8ACE-1720-4FB9-B0AE-9877249E89B0")]
867pub unsafe trait IITIPodSource : IITSource {
868 pub unsafe fn UpdateIPod(&self) -> HRESULT;
870 pub unsafe fn EjectIPod(&self) -> HRESULT;
872 pub unsafe fn SoftwareVersion(&self, SoftwareVersion: *mut BSTR) -> HRESULT;
874}
875
876#[windows::core::interface("00D7FE99-7868-4CC7-AD9E-ACFD70D09566")]
880pub unsafe trait IITFileOrCDTrack : IITTrack {
881 pub unsafe fn Location(&self, Location: *mut BSTR) -> HRESULT;
883 pub unsafe fn UpdateInfoFromFile(&self) -> HRESULT;
885 pub unsafe fn Podcast(&self, isPodcast: *mut VARIANT_BOOL) -> HRESULT;
887 pub unsafe fn UpdatePodcastFeed(&self) -> HRESULT;
889 pub unsafe fn RememberBookmark(&self, RememberBookmark: *mut VARIANT_BOOL) -> HRESULT;
891 pub unsafe fn set_RememberBookmark(&self, RememberBookmark: VARIANT_BOOL) -> HRESULT;
893 pub unsafe fn ExcludeFromShuffle(&self, ExcludeFromShuffle: *mut VARIANT_BOOL) -> HRESULT;
895 pub unsafe fn set_ExcludeFromShuffle(&self, ExcludeFromShuffle: VARIANT_BOOL) -> HRESULT;
897 pub unsafe fn Lyrics(&self, Lyrics: *mut BSTR) -> HRESULT;
899 pub unsafe fn set_Lyrics(&self, Lyrics: BSTR) -> HRESULT;
901 pub unsafe fn Category(&self, Category: *mut BSTR) -> HRESULT;
903 pub unsafe fn set_Category(&self, Category: BSTR) -> HRESULT;
905 pub unsafe fn Description(&self, Description: *mut BSTR) -> HRESULT;
907 pub unsafe fn set_Description(&self, Description: BSTR) -> HRESULT;
909 pub unsafe fn LongDescription(&self, LongDescription: *mut BSTR) -> HRESULT;
911 pub unsafe fn set_LongDescription(&self, LongDescription: BSTR) -> HRESULT;
913 pub unsafe fn BookmarkTime(&self, BookmarkTime: *mut LONG) -> HRESULT;
915 pub unsafe fn set_BookmarkTime(&self, BookmarkTime: LONG) -> HRESULT;
917 pub unsafe fn VideoKind(&self, VideoKind: *mut ITVideoKind) -> HRESULT;
919 pub unsafe fn set_VideoKind(&self, VideoKind: ITVideoKind) -> HRESULT;
921 pub unsafe fn SkippedCount(&self, SkippedCount: *mut LONG) -> HRESULT;
923 pub unsafe fn set_SkippedCount(&self, SkippedCount: LONG) -> HRESULT;
925 pub unsafe fn SkippedDate(&self, SkippedDate: *mut DATE) -> HRESULT;
927 pub unsafe fn set_SkippedDate(&self, SkippedDate: DATE) -> HRESULT;
929 pub unsafe fn PartOfGaplessAlbum(&self, PartOfGaplessAlbum: *mut VARIANT_BOOL) -> HRESULT;
931 pub unsafe fn set_PartOfGaplessAlbum(&self, PartOfGaplessAlbum: VARIANT_BOOL) -> HRESULT;
933 pub unsafe fn AlbumArtist(&self, AlbumArtist: *mut BSTR) -> HRESULT;
935 pub unsafe fn set_AlbumArtist(&self, AlbumArtist: BSTR) -> HRESULT;
937 pub unsafe fn Show(&self, showName: *mut BSTR) -> HRESULT;
939 pub unsafe fn set_Show(&self, showName: BSTR) -> HRESULT;
941 pub unsafe fn SeasonNumber(&self, SeasonNumber: *mut LONG) -> HRESULT;
943 pub unsafe fn set_SeasonNumber(&self, SeasonNumber: LONG) -> HRESULT;
945 pub unsafe fn EpisodeID(&self, EpisodeID: *mut BSTR) -> HRESULT;
947 pub unsafe fn set_EpisodeID(&self, EpisodeID: BSTR) -> HRESULT;
949 pub unsafe fn EpisodeNumber(&self, EpisodeNumber: *mut LONG) -> HRESULT;
951 pub unsafe fn set_EpisodeNumber(&self, EpisodeNumber: LONG) -> HRESULT;
953 pub unsafe fn Size64High(&self, sizeHigh: *mut LONG) -> HRESULT;
955 pub unsafe fn Size64Low(&self, sizeLow: *mut LONG) -> HRESULT;
957 pub unsafe fn Unplayed(&self, isUnplayed: *mut VARIANT_BOOL) -> HRESULT;
959 pub unsafe fn set_Unplayed(&self, isUnplayed: VARIANT_BOOL) -> HRESULT;
961 pub unsafe fn SortAlbum(&self, Album: *mut BSTR) -> HRESULT;
963 pub unsafe fn set_SortAlbum(&self, Album: BSTR) -> HRESULT;
965 pub unsafe fn SortAlbumArtist(&self, AlbumArtist: *mut BSTR) -> HRESULT;
967 pub unsafe fn set_SortAlbumArtist(&self, AlbumArtist: BSTR) -> HRESULT;
969 pub unsafe fn SortArtist(&self, Artist: *mut BSTR) -> HRESULT;
971 pub unsafe fn set_SortArtist(&self, Artist: BSTR) -> HRESULT;
973 pub unsafe fn SortComposer(&self, Composer: *mut BSTR) -> HRESULT;
975 pub unsafe fn set_SortComposer(&self, Composer: BSTR) -> HRESULT;
977 pub unsafe fn SortName(&self, Name: *mut BSTR) -> HRESULT;
979 pub unsafe fn set_SortName(&self, Name: BSTR) -> HRESULT;
981 pub unsafe fn SortShow(&self, showName: *mut BSTR) -> HRESULT;
983 pub unsafe fn set_SortShow(&self, showName: BSTR) -> HRESULT;
985 pub unsafe fn Reveal(&self) -> HRESULT;
987 pub unsafe fn AlbumRating(&self, Rating: *mut LONG) -> HRESULT;
989 pub unsafe fn set_AlbumRating(&self, Rating: LONG) -> HRESULT;
991 pub unsafe fn AlbumRatingKind(&self, ratingKind: *mut ITRatingKind) -> HRESULT;
993 pub unsafe fn ratingKind(&self, ratingKind: *mut ITRatingKind) -> HRESULT;
995 pub unsafe fn Playlists(&self, iPlaylistCollection: *mut Option<IITPlaylistCollection>) -> HRESULT;
997 pub unsafe fn set_Location(&self, Location: BSTR) -> HRESULT;
999 pub unsafe fn ReleaseDate(&self, ReleaseDate: *mut DATE) -> HRESULT;
1001}
1002
1003#[windows::core::interface("349CBB45-2E5A-4822-8E4A-A75555A186F7")]
1007pub unsafe trait IITPlaylistWindow : IITWindow {
1008 pub unsafe fn SelectedTracks(&self, iTrackCollection: *mut Option<IITTrackCollection>) -> HRESULT;
1010 pub unsafe fn Playlist(&self, iPlaylist: *mut Option<IITPlaylist>) -> HRESULT;
1012}