prxファイルの設定を取得するには


mato  2006-11-10 01:19:09  No: 23855

OS WinXP Pro SP1
Delphi 7 Pro

複数のビットレートを選択してエンコードを行えるアプリを作成しようとしています。

WindowsMediaプロファイルエディタでprxファイルを作成し、このprxファイルをインポートして設定したビットレートで変換できることは確認しています。

次に作成中のアプリ内の処理で同様の処理を実現しようと

http://msdn2.microsoft.com/en-us/library/aa388913.aspx
を参考に

var
  profilepath : WideString;  
  pManager:     IWMProfileManager;
  pProfile:     IWMProfile;
  msg:          String;
begin

  hr := WMCreateProfileManager(@pManager);    //プロファイルマネージャーの生成
  
  profilepath := 'c:\hoge.prx';

  hr := pManager.LoadProfileByData(PWideChar(profilepath ),pProfile);
  if hr = S_OK then begin
    msg := 'OK';
  end;

として、プロファイルの設定を実行したのですが戻り値が
  NS_E_INVALIDPROFILE              = HRESULT($C00D0BC6);
  {$EXTERNALSYM NS_E_INVALIDPROFILE}
となりました。

マイクロソフトで検索したところ

http://www.microsoft.com/japan/msdn/windowsmedia/development/wmformat_9_sdk_intro.aspx
においては
 (既存のプロファイルを変更せずに使用するには、単にメソッドを呼び出してプロファイル データを含んだファイルを指定するだけです)。
と説明されているので上記の方法にしたわけですが

http://msdn2.microsoft.com/en-us/library/aa388913.aspx
によると

This string must match an XML-formatted string created by IWMProfileManager::SaveProfile. 
By convention, when such strings are saved to disk they are given the ".prx" extension.

とあり、prxファイルの内容の文字列を設定するのかとも思い、メモ帳でprxファイルを開いたところ単なる文字列でしたので
prxファイルの内容をtxtにコピーして、TStringList変数のLoadFromFileで取得し、上記のprofilepathに
代入して実行してみましたが、結果は同じでした。

うまく動作するようになればhoge.prxを複数用意して、ユーザーに選択させた上で任意のビットレートで変換できると目論んだのですが、最初からつまづいてしまいました。
ProfileManagerにLoadProfileByIDというGUIDからプロファイルを設定できる
メソッドもあったのですが、GUIDの一覧のような資料も見つかりませんでした。

本事項について参考となる情報、ページなどご存知の方がいましたらご指摘くださるようお願いします。


えーとね  2006-11-10 11:06:58  No: 23856

> profilepath := 'c:\hoge.prx';
想像ですが、ファイル名ではなく、プロファイルを読み込んだ文字列が必要なのでは?

var
  s : WideString;  

fStream := TFileStream.Create('c:\profile.prx', fmOpenRead);
try
  SetLength(s, fStream.Size);
  fStream.Read(s, fStream.Size);
finally
  fStream.Free;
end;
hr := pWMProfileManager.LoadProfileByData(PWideChar(s), pProfile);


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加