unit use_mp3infpW; interface uses Windows; const mp3infp = 'mp3infp.dll'; { function mp3infp_GetVer: DWORD; stdcall'; function mp3infp_ViewPropEx(hWnd: HWND; const szFileName: PAnsiChar; dwPage: DWORD; modeless: BOOL; param1: DWORD; param2: DWORD): Integer; stdcall'; function mp3infp_ViewProp(hWnd: HWND; const szFileName: PAnsiChar; dwPage: DWORD): BOOL; stdcall; function mp3infp_GetType: DWORD; stdcall; function mp3infp_Load(hWnd: HWND; const szFileName: PAnsiChar): DWORD; stdcall; function mp3infp_GetValue(const szValueName: PAnsiChar; buf: Pointer): BOOL; stdcall; function mp3infp_mp3_GetTagType: DWORD; stdcall; function mp3infp_SetConf(tag: PAnsiChar; value: PAnsiChar): BOOL; stdcall; function mp3infp_SetValue (const szValueName: PAnsiChar; const buf: PAnsiChar): DWORD; stdcall; function mp3infp_Save (const szFileName: PAnsiChar): DWORD; stdcall; function mp3infp_mp3_MakeId3v1 (const szFileName: PAnsiChar): DWORD; stdcall; function mp3infp_mp3_DelId3v1 (const szFileName: PAnsiChar): DWORD; stdcall; function mp3infp_mp3_MakeId3v2 (const szFileName: PAnsiChar): DWORD; stdcall; function mp3infp_mp3_DelId3v2 (const szFileName: PAnsiChar): DWORD; stdcall; function mp3infp_mp3_MakeRMP (const szFileName: PAnsiChar): DWORD; stdcall; function mp3infp_mp3_DelRMP (const szFileName: PAnsiChar): DWORD; stdcall; function mp3infp_mp3_MakeApeTag(const szFileName: PAnsiChar): DWORD; stdcall; function mp3infp_mp3_DelApeTag (const szFileName: PAnsiChar): DWORD; stdcall; } {======================================================================================= 名前: mp3infp_GetVer 概要: mp3infpのバージョンを取得する 引数: なし 戻値: DWORD バージョン情報 Ver.2.11 = 0x0211 備考: 対応: Ver2.11〜 } function mp3infp_GetVer: DWORD; stdcall external mp3infp; {======================================================================================= 名前: mp3infp_ViewPropEx 概要: mp3infpに対応したファイル形式のプロパティを開く(モーダルダイアログ版) 説明: 指定ファイルのプロパティをmp3infpのタブをアクティブにして開きます ※シェルエクステンションを使用せずにmp3infp.dll単独の動作となります ※シェルエクステンション標準のプロパティページは表示されません 引数: IN HWND hWnd 呼び出し元ウインドウハンドル 呼び出し元ウインドウ上にダイアログを表示します NULLならデスクトップを指定したとみなします IN char *szFileName 対象ファイル名をフルパスで指定。 IN DWORD dwPage ・mp3infpの何ページ目をアクティブにするか指定する(0=ID3v1 / 1=ID3v2 / 2=RiffSIF / 3=APE(Ver2.47)) ・タグを含まないmp3の場合のみ有効 ・タグを含む場合はID3v2/APE/RiffSIF/ID3v1の順で検索して、最初に見つかったタグをアクティブにします IN BOOL modeless TRUEならプロパティを表示したまま制御を返します。戻り値にはプロパティのウインドウハンドルが入ります。 FALSEならプロパティを閉じるまで制御を返しません。 DWORD param1 未使用(0を指定してください) DWORD param2 未使用(0を指定してください) 戻値: int 成功=0以上/失敗=-1 対応: Ver2.48〜 } function mp3infp_ViewPropEx (hWnd: HWND; const szFileName: PAnsiChar; dwPage: DWORD; modeless: BOOL; param1: DWORD; param2: DWORD): Integer; stdcall external mp3infp; function mp3infp_ViewPropExA(hWnd: HWND; const szFileName: PAnsiChar; dwPage: DWORD; modeless: BOOL; param1: DWORD; param2: DWORD): Integer; stdcall external mp3infp; function mp3infp_ViewPropExW(hWnd: HWND; const szFileName: PWideChar; dwPage: DWORD; modeless: BOOL; param1: DWORD; param2: DWORD): Integer; stdcall external mp3infp; {======================================================================================= 名前: mp3infp_ViewProp 概要: mp3infpに対応したファイル形式のプロパティを開く 説明: 指定ファイルのプロパティをmp3infpのタブをアクティブにして開きます 引数: IN HWND hWnd 呼び出し元ウインドウハンドル IN char *szFileName 対象ファイル名をフルパスで指定。 IN DWORD dwPage ・mp3infpの何ページ目をアクティブにするか指定する(0=ID3v1 / 1=ID3v2 / 2=RiffSIF / 3=APE(Ver2.47)) ・タグを含まないmp3の場合のみ有効 ・タグを含む場合はID3v2/APE/RiffSIF/ID3v1の順で検索して、最初に見つかったタグをアクティブにします 戻値: BOOL 成功=TRUE/失敗=FALSE 対応: Ver2.00〜 } function mp3infp_ViewProp (hWnd: HWND; const szFileName: PAnsiChar; dwPage: DWORD): BOOL; stdcall external mp3infp; function mp3infp_ViewPropA(hWnd: HWND; const szFileName: PAnsiChar; dwPage: DWORD): BOOL; stdcall external mp3infp; function mp3infp_ViewPropW(hWnd: HWND; const szFileName: PWideChar; dwPage: DWORD): BOOL; stdcall external mp3infp; {======================================================================================= 名前: mp3infp_Load 概要: タグ情報をロードする 引数: IN HWND hWnd 呼び出し元ウインドウを指定します。無い場合はNULL。 IN const char *szFileName 対象ファイル名をフルパスで指定。 戻値: DWORD -1=ロード失敗 ERROR_SUCCESS=成功 (その他)=Win32エラーコード (FormatMessageで文字列を取得できる) 対応: Ver2.26〜 } function mp3infp_Load (hWnd: HWND; const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_LoadA(hWnd: HWND; const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_LoadW(hWnd: HWND; const szFileName: PWideChar): DWORD; stdcall external mp3infp; { //////////////////////////////////////////////////////////////////// 表1 mp3infp_GetValue()/mp3infp_SetValue()でszValueNameに指定する名前一覧 //////////////////////////////////////////////////////////////////// [共通](※1) ファイル名 "FILE" (v2.41〜) 拡張子 "FEXT" (v2.41〜) パス "PATH" (v2.41〜) サイズ(byte単位) "SIZ1" (v2.41〜) サイズ(Kbyte単位) "SIZK" (v2.41〜) サイズ(Mbyte単位) "SIZM" (v2.41〜) [MP3] ID3v1 ID3v2 RiffSIF APE フォーマット(※1) "AFMT" "AFMT" "AFMT" "AFMT" 演奏時間(※1) "TIME" "TIME" "TIME" "TIME" タイトル "INAM_v1" "INAM_v2" "INAM_rmp" "INAM_APE" アーティスト "IART_v1" "IART_v2" "IART_rmp" "IART_APE" アルバム "IPRD_v1" "IPRD_v2" "IPRD_rmp" "IPRD_APE" コメント "ICMT_v1" "ICMT_v2" "ICMT_rmp" "ICMT_APE" 作成日 "ICRD_v1" "ICRD_v2" "ICRD_rmp" "ICRD_APE" ジャンル "IGNR_v1" "IGNR_v2" "IGNR_rmp" "IGNR_APE" (ID3v2/RiffSIF) 著作権 "ICOP_v2" "ICOP_rmp" ソフトウェア/エンコーダ "ISFT_v2" "ISFT_rmp" (ID3v2) 作曲 "COMP_v2" Orig.アーティスト "OART_v2" URL "URL_v2" エンコードした人 "ENC2_v2" (RiffSIF) ソース "ISRC_rmp" エンジニア "IENG_rmp" (ID3v1/2) トラック番号 "TRACK_v1" "TRACK_v2" "TRACK_APE" [WAV] フォーマット(※1) "AFMT" 演奏時間(※1) "TIME" タイトル(※2) "INAM" タイトル(※2) "ISBJ" アーティスト "IART" アルバム "IPRD" コメント "ICMT" 作成日 "ICRD" ジャンル "IGNR" 著作権 "ICOP" ソフトウェア "ISFT" ソース "ISRC" エンジニア "IENG" [AVI] 音声フォーマット(※1) "AFMT" 映像フォーマット(※1) "VFMT" 時間(※1) "TIME" タイトル(※2) "INAM" タイトル(※2) "ISBJ" アーティスト "IART" コメント "ICMT" 作成日 "ICRD" ジャンル "IGNR" 著作権 "ICOP" ソフトウェア "ISFT" ソース "ISRC" エンジニア "IENG" AVIバージョン "AVIV" (v2.37〜) [VQF] フォーマット(※1) "AFMT" 演奏時間(※1) "TIME" タイトル "INAM" アーティスト "IART" コメント "ICMT" 著作権 "ICOP" 保存名 "FILE" [WMA] 音声フォーマット(※1) "AFMT" 映像フォーマット(※1) "VFMT" 時間(※1) "TIME" タイトル "INAM" トラック "TRACK" アーティスト "IART" アルバム "IPRD" コメント "ICMT" 作成日 "ICRD" ジャンル "IGNR" 著作権 "ICOP" URL(Album) "URL1" URL(関連) "URL2" [OGG] フォーマット(※1) "AFMT" 演奏時間(※1) "TIME" タイトル "INAM" アーティスト "IART" アルバム "IPRD" コメント "ICMT" 作成日 "ICRD" ジャンル "IGNR" トラック番号 "TRACK" [APE] フォーマット(※1) "AFMT" 演奏時間(※1) "TIME" タイトル "INAM" アーティスト "IART" アルバム "IPRD" コメント "ICMT" 作成日 "ICRD" ジャンル "IGNR" トラック番号 "TRACK" [MP4] (v2.53〜) 音声フォーマット(※1) "AFMT" 映像フォーマット(※1) "VFMT" タイトル "INAM" アーティスト "IART" アルバム "IPRD" グループ "IGRP" 作曲 "COMPOSER" ジャンル "IGNR" トラック番号1 "TRACK1" (1以上の数値) トラック番号2 "TRACK2" (1以上の数値) ディスク番号1 "DISC1" (1以上の数値) ディスク番号2 "DISC2" (1以上の数値) テンポ "BPM" (数値) 作成日 "ICRD" (4桁の数値 例:"2004") コンピレーション "COMPILATION" ("1" or "0") コメント "ICMT" ツール "TOOL" (※1)mp3infp_SetValue()では利用できません。 (※2)mp3infpではロード時にINAMを優先、無ければISBJを表示。セーブ時にはISBJを削除、INAMを保存します。 } const MP3INFP_FILE_UNKNOWN = $00; MP3INFP_FILE_MP3 = $01; MP3INFP_FILE_WAV = $02; MP3INFP_FILE_AVI = $03; MP3INFP_FILE_VQF = $04; MP3INFP_FILE_WMA = $05; MP3INFP_FILE_OGG = $07; MP3INFP_FILE_APE = $08; MP3INFP_FILE_MP4 = $09; {======================================================================================= 名前: mp3infp_GetType 概要: ファイルの種類を取得する 補足: mp3infp_Load()の後に呼び出してください 引数: なし 戻値: DWORD #define MP3INFP_FILE_UNKNOWN 0x00 #define MP3INFP_FILE_MP3 0x01 #define MP3INFP_FILE_WAV 0x02 #define MP3INFP_FILE_AVI 0x03 #define MP3INFP_FILE_VQF 0x04 #define MP3INFP_FILE_WMA 0x05 #define MP3INFP_FILE_OGG 0x07 #define MP3INFP_FILE_APE 0x08 対応: Ver2.26〜 #define MP3INFP_FILE_MP4 0x09 対応: Ver2.53〜 } function mp3infp_GetType: DWORD; stdcall external mp3infp; {======================================================================================= 名前: mp3infp_GetValue 概要: タグ情報を取得する 補足: mp3infp_Load()の後に呼び出してください 引数: IN const char *szValueName タグの種類を示す名前(表1を参照) OUT char **buf タグ情報を示すバッファのポインタを受け取るポインタ 戻値: BOOL 成功=TRUE/失敗=FALSE 対応: Ver2.26〜 } function mp3infp_GetValue (const szValueName: PAnsiChar; buf: PPAnsiChar): BOOL; stdcall external mp3infp; function mp3infp_GetValueA(const szValueName: PAnsiChar; buf: PPAnsiChar): BOOL; stdcall external mp3infp; function mp3infp_GetValueW(const szValueName: PWideChar; buf: PPWideChar): BOOL; stdcall external mp3infp; const MP3INFP_HAS_MP3_ID3V1 = $00000001; MP3INFP_HAS_MP3_ID3V2 = $00000002; MP3INFP_HAS_MP3_RIFFSIF = $00000004; MP3INFP_HAS_MP3_ID3V1_0 = $00000008; // v2.43〜 MP3INFP_HAS_MP3_ID3V1_1 = $00000010; // v2.43〜 MP3INFP_HAS_MP3_ID3V2_2 = $00000020; // v2.43〜 MP3INFP_HAS_MP3_ID3V2_3 = $00000040; // v2.43〜 MP3INFP_HAS_MP3_ID3V2_4 = $00000080; // v2.43〜 MP3INFP_HAS_MP3_APEV1 = $00000100; // v2.47〜 MP3INFP_HAS_MP3_APEV2 = $00000200; // v2.47〜 {======================================================================================= 名前: mp3infp_mp3_GetTagType 概要: mp3が持っているタグの種類を取得する 補足: mp3infp_Load()の後に呼び出してください 引数: なし 戻値: DWORD (OR) #define MP3INFP_HAS_MP3_ID3V1 0x00000001 #define MP3INFP_HAS_MP3_ID3V2 0x00000002 #define MP3INFP_HAS_MP3_RIFFSIF 0x00000004 #define MP3INFP_HAS_MP3_ID3V1_0 0x00000008 // v2.43〜 #define MP3INFP_HAS_MP3_ID3V1_1 0x00000010 // v2.43〜 #define MP3INFP_HAS_MP3_ID3V2_2 0x00000020 // v2.43〜 #define MP3INFP_HAS_MP3_ID3V2_3 0x00000040 // v2.43〜 #define MP3INFP_HAS_MP3_ID3V2_4 0x00000080 // v2.43〜 #define MP3INFP_HAS_MP3_APEV1 0x00000100 // v2.47〜 #define MP3INFP_HAS_MP3_APEV2 0x00000200 // v2.47〜 対応: Ver2.27〜 } function mp3infp_mp3_GetTagType: DWORD; stdcall external mp3infp; {======================================================================================= 名前: mp3infp_SetConf 概要: mp3infpの動作設定 引数: IN char *tag 設定項目(表2参照) IN char *val 設定値(表2参照) 戻値: BOOL 成功=TRUE/失敗=FALSE 対応: Ver2.42〜 補足: ・他のプロセスのmp3infp.dll/シェル拡張のmp3infpには影響しない ・設定内容は保存されない } function mp3infp_SetConf(tag: PAnsiChar; value: PAnsiChar): BOOL; stdcall external mp3infp; {======================================================================================= //////////////////////////////////////////////////////////////////// mp3infp_SetConf()指定する設定項目・値一覧 //////////////////////////////////////////////////////////////////// [Waveファイルのコーデック名称の取得方法](Ver2.42〜) (項目名) "wave_CodecFind" (値) "0"(default) mp3infp内蔵辞書 → Windows APIを利用の順で検索(高速) "1" Windows APIを利用 → 自力解析の順で検索(低速) "2" mp3infp内蔵辞書(高速) "3" Windows APIを利用(低速) [Aviファイルのコーデック名称の取得方法](Ver2.42〜) (項目名) "avi_CodecFind" (値) "0"(default) mp3infp内蔵辞書 → Windows APIを利用の順で検索(高速) "1" Windows APIを利用 → 自力解析の順で検索(低速) "2" mp3infp内蔵辞書(高速) "3" Windows APIを利用(低速) [ID3v1で拡張ジャンルを使用する](Ver2.43〜) (項目名) "mp3_UseExtGenre" (値) "0"(default) 無効 "1" 有効 [ID3v2で文字列をUnicodeで書き込む](Ver2.43〜) (項目名) "mp3_ID3v2Unicode" (値) "0"(default) 無効 "1" 有効 [ID3v2を非同期化する](Ver2.43〜) (項目名) "mp3_ID3v2Unsync" (値) "0" 無効 "1"(default) 有効 [保存時のID3v2バージョン](Ver2.43〜) ※この設定値はmp3infp_Load()の実行によって上書きされます。 (項目名) "mp3_SaveID3v2Version" (値) "2.2" ID3v2.2 "2.3"(default) ID3v2.3 "2.4" ID3v2.4 } {======================================================================================= 名前: mp3infp_SetValue 概要: タグ情報を設定する 補足: mp3infp_Load()の後に呼び出してください 引数: IN const char *szValueName タグの種類を示す名前(表1を参照) IN const char *buf タグ情報を示す文字列 戻値: DWORD -1=失敗 ERROR_SUCCESS=成功 対応: Ver.2.43〜 } function mp3infp_SetValue (const szValueName: PAnsiChar; const buf: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_SetValueA(const szValueName: PAnsiChar; const buf: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_SetValueW(const szValueName: PWideChar; const buf: PWideChar): DWORD; stdcall external mp3infp; {======================================================================================= 名前: mp3infp_Save 概要: タグ情報を保存する 補足: mp3infp_Load()の後に呼び出してください 引数: IN const char *szFileName 対象ファイル名をフルパスで指定。 戻値: DWORD -1=失敗 -2=2Gバイトを超えるファイルを扱うことはできません。(WAVファイルのみ) ERROR_SUCCESS=成功 (その他)=Win32エラーコード (FormatMessageで文字列を取得できる) 対応: Ver.2.43〜 } function mp3infp_Save (const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_SaveA(const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_SaveW(const szFileName: PWideChar): DWORD; stdcall external mp3infp; {======================================================================================= 名前: mp3infp_mp3_MakeId3v1 概要: ID3TAG V1を作成する 補足: mp3infp_Load()の後に呼び出してください 変更は直ちに反映されます mp3ファイルにのみ利用してください(wavファイルは対象外) 引数: IN char *szFileName 対象ファイル名をフルパスで指定。 戻値: DWORD -1=失敗 ERROR_SUCCESS=成功 (その他)=Win32エラーコード (FormatMessageで文字列を取得できる) 対応: Ver.2.43〜 } function mp3infp_mp3_MakeId3v1 (const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_MakeId3v1A(const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_MakeId3v1W(const szFileName: PWideChar): DWORD; stdcall external mp3infp; {======================================================================================= 名前: mp3infp_mp3_DelId3v1 概要: ID3TAG V1を削除する 補足: mp3infp_Load()の後に呼び出してください 変更は直ちに反映されます mp3ファイルにのみ利用してください(wavファイルは対象外) 引数: IN char *szFileName 対象ファイル名をフルパスで指定。 戻値: DWORD -1=失敗 ERROR_SUCCESS=成功 (その他)=Win32エラーコード (FormatMessageで文字列を取得できる) 対応: Ver.2.43〜 } function mp3infp_mp3_DelId3v1 (const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_DelId3v1A(const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_DelId3v1W(const szFileName: PWideChar): DWORD; stdcall external mp3infp; {======================================================================================= 名前: mp3infp_mp3_MakeId3v2 概要: ID3TAG V2を作成する 補足: mp3infp_Load()の後に呼び出してください 変更は直ちに反映されます mp3ファイルにのみ利用してください(wavファイルは対象外) 引数: IN char *szFileName 対象ファイル名をフルパスで指定。 戻値: DWORD -1=失敗 ERROR_SUCCESS=成功 (その他)=Win32エラーコード (FormatMessageで文字列を取得できる) 対応: Ver.2.43〜 } function mp3infp_mp3_MakeId3v2 (const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_MakeId3v2A(const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_MakeId3v2W(const szFileName: PWideChar): DWORD; stdcall external mp3infp; {======================================================================================= 名前: mp3infp_mp3_DelId3v2 概要: ID3TAG V2を削除する 補足: mp3infp_Load()の後に呼び出してください 変更は直ちに反映されます mp3ファイルにのみ利用してください(wavファイルは対象外) 引数: IN char *szFileName 対象ファイル名をフルパスで指定。 戻値: DWORD -1=失敗 ERROR_SUCCESS=成功 (その他)=Win32エラーコード (FormatMessageで文字列を取得できる) 対応: Ver.2.43〜 } function mp3infp_mp3_DelId3v2 (const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_DelId3v2A(const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_DelId3v2W(const szFileName: PWideChar): DWORD; stdcall external mp3infp; {======================================================================================= 名前: mp3infp_mp3_MakeRMP 概要: mp3形式からRMP形式に変換する 補足: mp3infp_Load()の後に呼び出してください 変更は直ちに反映されます mp3ファイルにのみ利用してください(wavファイルは対象外) 引数: IN char *szFileName 対象ファイル名をフルパスで指定。 戻値: DWORD -1=失敗 ERROR_SUCCESS=成功 (その他)=Win32エラーコード (FormatMessageで文字列を取得できる) 対応: Ver.2.43〜 } function mp3infp_mp3_MakeRMP (const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_MakeRMPA(const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_MakeRMPW(const szFileName: PWideChar): DWORD; stdcall external mp3infp; {======================================================================================= 名前: mp3infp_mp3_DelRMP 概要: RMP形式からmp3形式に変換する 補足: mp3infp_Load()の後に呼び出してください 変更は直ちに反映されます mp3ファイルにのみ利用してください(wavファイルは対象外) 引数: IN char *szFileName 対象ファイル名をフルパスで指定。 戻値: DWORD -1=失敗 ERROR_SUCCESS=成功 (その他)=Win32エラーコード (FormatMessageで文字列を取得できる) 対応: Ver.2.43〜 } function mp3infp_mp3_DelRMP (const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_DelRMPA(const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_DelRMPW(const szFileName: PWideChar): DWORD; stdcall external mp3infp; {======================================================================================= 名前: mp3infp_mp3_MakeApeTag 概要: APE Tagを作成する 補足: mp3infp_Load()の後に呼び出してください 変更は直ちに反映されます mp3ファイルにのみ利用してください(wavファイルは対象外) 引数: IN char *szFileName 対象ファイル名をフルパスで指定。 戻値: DWORD -1=失敗 ERROR_SUCCESS=成功 (その他)=Win32エラーコード (FormatMessageで文字列を取得できる) 対応: Ver.2.47〜 } function mp3infp_mp3_MakeApeTag (const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_MakeApeTagA(const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_MakeApeTagW(const szFileName: PWideChar): DWORD; stdcall external mp3infp; {======================================================================================= 名前: mp3infp_mp3_DelApeTag 概要: APE Tagを削除する 補足: mp3infp_Load()の後に呼び出してください 変更は直ちに反映されます mp3ファイルにのみ利用してください(wavファイルは対象外) 引数: IN char *szFileName 対象ファイル名をフルパスで指定。 戻値: DWORD -1=失敗 ERROR_SUCCESS=成功 (その他)=Win32エラーコード (FormatMessageで文字列を取得できる) 対応: Ver.2.47〜 } function mp3infp_mp3_DelApeTag (const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_DelApeTagA(const szFileName: PAnsiChar): DWORD; stdcall external mp3infp; function mp3infp_mp3_DelApeTagW(const szFileName: PWideChar): DWORD; stdcall external mp3infp; implementation end.