概要

wmaファイルのアーティスト名を変更します。
本プログラムはコマンドラインで動作します。
TCHAR* getnameを初期化する文字列を例えばTitleに変更するとタイトル名を変更できます。
使用例

wmchg2 [ファイル名] [アーティスト名]

ソースコード

UNICODEに対応し、32bit/64bit対応です。
// WMAファイルのアーティスト情報を変更する。
// Visual C++ 2008 UNICODE  32bit/64bit
// 2014/4/06
// 使い方
//   コマンドラインで下記の様に入力
//   wmchg2 ファイル名 アーティスト名

#include <windows.h>
#include <stdio.h>
#include <wmsdk.h>
#include <locale.h>
#include <tchar.h>

#pragma comment(lib,"wmvcore.lib")

int _tmain(int argc,TCHAR** argv){
	_tsetlocale(LC_ALL,_TEXT(""));

	IWMMetadataEditor* pEditor=NULL;

	HRESULT hr;
	IWMHeaderInfo3* pHeaderInfo=NULL;

	hr=WMCreateEditor(&pEditor);	// オブジェクトを作成
	hr=pEditor->Open(argv[1]);
	pEditor->QueryInterface(IID_IWMHeaderInfo3,(void**)&pHeaderInfo);

	WORD wStreamNum = 0;
	WMT_ATTR_DATATYPE Type;
	WORD cbLength;

	TCHAR* getname=_TEXT("WM/AlbumArtist");	//	アルバムのアーティスト
//	TCHAR* getname=_TEXT("Title");	//	タイトル
	Type=WMT_TYPE_STRING;
	cbLength=_tcslen(argv[2])*sizeof(TCHAR);
	//	タイトルを変更
	hr=pHeaderInfo->SetAttribute(wStreamNum,getname,Type, (BYTE*)argv[2], cbLength );

	pHeaderInfo->Release();
	//	変更を保存
	pEditor->Flush();

}

ソース・実行ファイル

Visual C++ 2008用 ソース・実行ファイルのダウンロード