掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
iTunes COM で、最近のプロパティーにアクセスするには? (ID:21415)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
iTunes COM ヘルプファイル ( iTunes COM for Windows SDK ) http://developer.apple.com/sdk/itunescomsdk.html を使って、いろいろ試しているのですが、 比較的最新に追加されたプロパティーにアクセスしようとすると、 'RPCRT4.dll'でエラーが怒ってしまいます。 どこがおかしいのでしょうか。 Delphi6 Personal Windows XP Pro iTunes 6.0.4.2 タイプライブラリ iTunesLib_TLB バージョン 1.7 //---------------- uses iTunesLib_TLB {を追加} .. private { Private 宣言 } iTunesApp: IiTunes; .. procedure TForm1.Button1Click(Sender: TObject); var i: Integer; sFilePath: WideString; sName: WideString; sArtist: WideString; sAlbum: WideString; sGenre: WideString; sYear: WideString; bRememberBookmark: WordBool; bExcludeFromShuffle: WordBool; oTrack: IITTrack; oFileTrack: IITFileOrCDTrack; oTrackCollec: IITTrackCollection; oMainLibrary: IITLibraryPlaylist; oStatus: IITOperationStatus; begin Windows.Beep(3000, 100); sFilePath := Edit1.Text; sName := Edit2.Text; sArtist := Edit3.Text; sAlbum := Edit4.Text; sGenre := Edit5.Text; sYear := Edit6.Text; bRememberBookmark := CheckBox1.Checked; bExcludeFromShuffle := CheckBox2.Checked; // iTunes 起動 iTunesApp := CoiTunesApp.Create; try // ライブラリーのプレイリストを取得 oMainLibrary := iTunesApp.LibraryPlaylist; // ライブラリーのプレイリストにファイルを追加 // 複数のファイルが入ったフォルダーごと指定も可能 oStatus := oMainLibrary.AddFile(sFilePath); // 処理が終わるまで待つ (?) while oStatus.InProgress do begin Application.ProcessMessages; Sleep(100); end; // 処理されたトラックが入ったコレクションが帰ってくる oTrackCollec := oStatus.Tracks; // コレクションに入っているトラックの数 Label2.Caption := IntToStr(oTrackCollec.Count); // 順番にトラックのプロパティー、オプションを設定 for i := 1 to oTrackCollec.Count do begin oTrack := oTrackCollec.Item[i]; // より詳細な型へ変換 oFileTrack := IITFileOrCDTrack( oTrack ); oFileTrack.Set_Name( sName ); oFileTrack.Set_Artist( sArtist ); oFileTrack.Set_Album( sAlbum ); oFileTrack.Set_Genre( sGenre ); oFileTrack.Set_Year( StrToIntDef(Edit6.Text, CurrentYear) ); {!! ここまではエラーなし} // 比較的最新の iTunes が必要 // iTunes 5.0 and later (iTunes type library 1.5 and later). // なので バージョンチェック if not iTunesApp.CheckVersion( 1, 5 ) then begin ShowMessage( 'iTunes 5.0 以降が必要です' ); Exit; end; {!! 最新のプロパティーにアクセスしようとするとエラー 'RPCRT4.dll' EAccessViolation } oFileTrack.Set_RememberBookmark( bRememberBookmark ); oFileTrack.Set_ExcludeFromShuffle( bExcludeFromShuffle ); end; finally Windows.Beep(3000, 100); // iTunes 終了 iTunesApp.Quit; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.