<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Windows Media Player</title><link>http://blogs.wankuma.com/ch3cooh/category/1695.aspx</link><description>Windows Media Player関係の日記です</description><managingEditor>CH3COOH</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>CH3COOH</dc:creator><title>[WMP]FLVをWindows Media Playerで再生する方法</title><link>http://blogs.wankuma.com/ch3cooh/archive/2008/04/05/131828.aspx</link><pubDate>Sat, 05 Apr 2008 22:43:00 GMT</pubDate><guid>http://blogs.wankuma.com/ch3cooh/archive/2008/04/05/131828.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/131828.aspx</wfw:comment><comments>http://blogs.wankuma.com/ch3cooh/archive/2008/04/05/131828.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/131828.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/131828.aspx</trackback:ping><description>&lt;p&gt;ブラウジング(ネットサーフィング？)をしていると、何だかんだ言ってFLVが溜まっていきます。FLVファイルは専用プレイヤーを使って再生出来るのですけど、普段Windows Media Playerを使っているのにFLVの時だけ専用プレイヤーを使うのには違和感を感じます。&lt;/p&gt; &lt;p&gt;WMP好きとしては、WMPを使いたいのでちょい調べてみました。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.rarewares.org/others.php" href="http://www.rarewares.org/others.php"&gt;http://www.rarewares.org/others.php&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Flash Video decoders　をダウンロードします。&lt;br&gt;解凍して「FLVSplitter.ax」 をシステムフォルダに格納して、「register.bat」 を実行すればOK&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/131828.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>CH3COOH</dc:creator><title>[WMP]Windows Media Player用の視覚エフェクト(Visualizer)を作ってみるテスト(5)</title><link>http://blogs.wankuma.com/ch3cooh/archive/2008/03/29/130393.aspx</link><pubDate>Sat, 29 Mar 2008 10:34:00 GMT</pubDate><guid>http://blogs.wankuma.com/ch3cooh/archive/2008/03/29/130393.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/130393.aspx</wfw:comment><comments>http://blogs.wankuma.com/ch3cooh/archive/2008/03/29/130393.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/130393.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/130393.aspx</trackback:ping><description>&lt;p&gt;とっちゃんさんに「AddFontMemResourceEx()を使えばいいよん」と、ヒントを頂く事が出来たので、早速リソースにフォントを埋め込んで文字列を表示させてみたいと思います。&lt;br&gt;でも、ちょっと大変そうなのでエントリを分けます。今日はAddFontMemResourceEx() を使える様にするところまでヽ(^o^)/&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;適当なパラメータを突っ込んで &lt;strong&gt;AddFontMemResourceEx() を呼ぶと「識別子が見当たりません」とビルドエラーが出ちゃいます。&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;AddFontMemResourceEx() はWindows2000以降対応のWIN32APIなので、&lt;strong&gt;Visualizer Plug-In Wizerdから生成されたままのプロジェクトだと使用する事が出来ません。&lt;/strong&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp; &lt;p&gt;StdAfx.h を開いて下記の定義を変更します。&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:c781c3f1-ef0d-4851-bde5-423df312b48a" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c"&gt;#define STRICT
#ifndef _WIN32_WINNT
//#define _WIN32_WINNT 0x0400
#define _WIN32_WINNT 0x0500
#endif&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;これでビルドが通る様になります。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/130393.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>CH3COOH</dc:creator><title>[WMP]Windows Media Player用の視覚エフェクト(Visualizer)を作ってみるテスト(4)</title><link>http://blogs.wankuma.com/ch3cooh/archive/2008/03/24/129421.aspx</link><pubDate>Mon, 24 Mar 2008 23:52:00 GMT</pubDate><guid>http://blogs.wankuma.com/ch3cooh/archive/2008/03/24/129421.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/129421.aspx</wfw:comment><comments>http://blogs.wankuma.com/ch3cooh/archive/2008/03/24/129421.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/129421.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/129421.aspx</trackback:ping><description>&lt;p&gt;Windows(というよりGDI？)でダブルバッファリングってどないするんやろう？僕が今までやった事あるのはバッファを2面持って、タイミングをずらしてV-RAMに直接転送するみたいな……((´д｀))ﾌﾞﾙﾌﾞﾙ…&lt;/p&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;……と、半日位悩んでダブルバッファリングに対応してきました。。。Windowsは難しいなぁ(´・ω・｀) &lt;p&gt;つまり、こういう事をすれば良いのですね。 &lt;p&gt;&lt;a href="http://ch3cooh.wankuma.com/dialy/img/WMPWindowsMediaPlayerVisualizer4_14297/2__6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="304" alt="新規ビットマップ イメージ (2)__6" src="http://ch3cooh.wankuma.com/dialy/img/WMPWindowsMediaPlayerVisualizer4_14297/2__6_thumb.png" width="388" border="0"&gt;&lt;/a&gt;  &lt;p&gt;&amp;nbsp; &lt;p&gt;んで、コードはこんな感じ。Brushを生成している所は現時点で使わないので削除しました。 &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:c6233715-b0de-4939-908a-fe285694278a" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c"&gt;//////////////////////////////////////////////////////////////////////////////
// CSample::Render
// Called when an effect should render itself to the screen.
//////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CSample::Render(TimedLevel *pLevels, HDC hdc, RECT *prc)
{
  // draw using the current preset
  switch (m_nPreset)
  {
    case PRESET_BARS:
    {
      HDC hBackDC = NULL;
      HBITMAP hBcakBitmap = NULL;

      // ダブルバッファ用の領域確保
      hBackDC = CreateCompatibleDC(hdc);
      hBcakBitmap = CreateCompatibleBitmap(hdc, prc-&amp;gt;right, prc-&amp;gt;bottom);
      HBITMAP hOldBitmap = (HBITMAP)::SelectObject(hBackDC, hBcakBitmap);

      // DLLのリソースから「IDB_BITMAP1」を読み出す
      HINSTANCE hInstance = ::GetModuleHandle("sample");  
      HBITMAP hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1));

      // BMPの大きさを把握 
      BITMAP bm = {0};
      ::GetObject(hBitmap, sizeof(BITMAP), (LPVOID)&amp;amp;bm);

      // BMPを表示領域全体に合わせて転送(まだ表示はしない)   
      HDC hMdc = ::CreateCompatibleDC(hBackDC);   
      ::SelectObject(hMdc, hBitmap);
      ::StretchBlt(hBackDC, 0, 0, prc-&amp;gt;right, prc-&amp;gt;bottom,   
             hMdc, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY );   

      // 一気に転送するお(＾ω＾)
      ::BitBlt( hdc, 0, 0, prc-&amp;gt;right, prc-&amp;gt;bottom, hBackDC, 0, 0, SRCCOPY);

      // 後始末  
      if(hMdc) ::DeleteObject(hMdc);
      if(hBitmap) ::DeleteObject(hBitmap);
      if(hBcakBitmap) ::DeleteObject(hBcakBitmap);
      if(hBackDC)
      {
        ::SelectObject(hBackDC, hOldBitmap);
        ::DeleteDC(hBackDC);
      }
    }
    break;
  }

  return S_OK;
}&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;ってことで、実行！&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://ch3cooh.wankuma.com/dialy/img/WMPWindowsMediaPlayerVisualizer4_14297/2__5.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="468" alt="新規ビットマップ イメージ (2)__5" src="http://ch3cooh.wankuma.com/dialy/img/WMPWindowsMediaPlayerVisualizer4_14297/2__5_thumb.png" width="451" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;はい、美しく表示されております～。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/129421.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>CH3COOH</dc:creator><title>[WMP]Windows Media Player用の視覚エフェクト(Visualizer)を作ってみるテスト(3)</title><link>http://blogs.wankuma.com/ch3cooh/archive/2008/03/24/129394.aspx</link><pubDate>Mon, 24 Mar 2008 18:38:00 GMT</pubDate><guid>http://blogs.wankuma.com/ch3cooh/archive/2008/03/24/129394.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/129394.aspx</wfw:comment><comments>http://blogs.wankuma.com/ch3cooh/archive/2008/03/24/129394.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/129394.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/129394.aspx</trackback:ping><description>&lt;P&gt;簡単に視覚エフェクト(Visualizer)を作るのを目的にしているので、今回はリソースに含まれるBitmapを表示しちゃっいます。&lt;/P&gt;
&lt;P&gt;まず、リソースにBitmapを挿入します。(内容が薄いので画像でかさ増ししてます)&lt;/P&gt;
&lt;P&gt;&lt;A href="http://ch3cooh.wankuma.com/dialy/img/69857a50fdb0_FA4C/2__.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=274 alt="新規ビットマップ イメージ (2)__" src="http://ch3cooh.wankuma.com/dialy/img/69857a50fdb0_FA4C/2___thumb.png" width=432 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://ch3cooh.wankuma.com/dialy/img/69857a50fdb0_FA4C/2__2.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=146 alt="新規ビットマップ イメージ (2)__2" src="http://ch3cooh.wankuma.com/dialy/img/69857a50fdb0_FA4C/2__2_thumb.png" width=245 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Wizerdから生成したデフォルトの状態ではBMPのリソースは登録されていないので、「&lt;STRONG&gt;IDB_BITMAP1&lt;/STRONG&gt;」って名前になります。リソースIDはこれを使用します。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;視覚エフェクト(Visualizer)の描画処理は、CSample::Render()で行われています&lt;/STRONG&gt;ので、リソースからBMPをロードして、表示枠に合わせて表示させます。下記のようにコードを変更してみます。&lt;/P&gt;
&lt;P&gt;
&lt;DIV class=wlWriterSmartContent id=scid:812469c5-0cb0-4c63-8c15-c81123a09de7:39b32185-72b3-4336-ae4d-79904c3b8f75 style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;PRE class=c name="code"&gt;  case PRESET_BARS:
  {
#if 1
    // DLLのhInstanceを取得
    HINSTANCE hInstance = ::GetModuleHandle("sample");

    // DLLのリソースから「IDB_BITMAP1」をロード
    HBITMAP hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1));

    // BMPの大きさを把握
    BITMAP bm = {0};
    ::GetObject(hBitmap, sizeof(BITMAP), (LPVOID)&amp;amp;bm);

    // BMPを表示領域全体に合わせて表示
    HDC hMdc = CreateCompatibleDC(hdc);
    SelectObject(hMdc, hBitmap);

    StretchBlt(hdc, 0, 0, prc-&amp;gt;right, prc-&amp;gt;bottom,
               hMdc, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY );

    // 後始末
    if(hMdc)    ::DeleteObject(hMdc);
    if(hBitmap) ::DeleteObject(hBitmap);

#else
    // Walk through the frequencies until we run out of levels or drawing surface.
    for (int x = prc-&amp;gt;left; x &amp;lt; prc-&amp;gt;right &amp;amp;&amp;amp; x &amp;lt; (SA_BUFFER_SIZE-1); ++x)
    {
      int y = static_cast&lt;INT&gt;(((prc-&amp;gt;bottom - prc-&amp;gt;top)/256.0f) * pLevels-&amp;gt;frequency[0][x - (prc-&amp;gt;left - 1)]);
      ::MoveToEx( hdc, x, prc-&amp;gt;bottom, NULL );  
      ::LineTo(hdc, x, prc-&amp;gt;bottom - y); 
    }
#endif
  }
  break;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;はいっ。実行！&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://ch3cooh.wankuma.com/dialy/img/69857a50fdb0_FA4C/2__4.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=400 alt="新規ビットマップ イメージ (2)__4" src="http://ch3cooh.wankuma.com/dialy/img/69857a50fdb0_FA4C/2__4_thumb.png" width=386 border=0&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;おーっ！表示されました。 
&lt;P&gt;
&lt;P&gt;しかし、チラツキがひどい&amp;#8230;&amp;#8230;ダブルバッファリングしなきゃ駄目ですね。 
&lt;P&gt;
&lt;P&gt;(追記)&lt;BR&gt;とっちゃんさんにDLLのhInstanceは、DllMain()のhInstanceをグローバル変数等に格納して使いまわした方が処理効率が良い事を聞いております。良い子の皆様はDllMain()のhInstanceを使いましょう(｀・ω・&amp;#180;)&lt;BR&gt;この連載はあまりコードを触らずにWMPのVisualizerを作るのが目的なので、表示関数内でDLLのhInstanceで取得しリソースをロードするのに使っています。えぇ、僕は悪い子です。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/129394.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>CH3COOH</dc:creator><title>[WMP][C/C++]DLLは自分自身のリソースを使う事が出来ないのでしょうか？(解決編)</title><link>http://blogs.wankuma.com/ch3cooh/archive/2008/03/23/129184.aspx</link><pubDate>Sun, 23 Mar 2008 09:35:00 GMT</pubDate><guid>http://blogs.wankuma.com/ch3cooh/archive/2008/03/23/129184.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/129184.aspx</wfw:comment><comments>http://blogs.wankuma.com/ch3cooh/archive/2008/03/23/129184.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/129184.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/129184.aspx</trackback:ping><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.wankuma.com/ch3cooh/archive/2008/03/23/129183.aspx"&gt;[WMP][C/C++]DLLは自分自身のリソースを使う事が出来ないのでしょうか？&lt;/a&gt;の続き。  &lt;p&gt;いざエントリを投稿しようとして、ざっくりと見返していたら、なんでGetModuleHandle()の引数はNULLなん？と疑問を感じて、MSDNを紐解いてみました。&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdllpro/html/_win32_getmodulehandle.asp"&gt;GetModuleHandle&lt;/a&gt;&lt;br&gt;呼び出し側プロセスのアドレス空間に該当ファイルがマップされている場合、指定されたモジュール名のモジュールハンドルを返します。&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;HMODULE GetModuleHandle(&lt;br&gt;&amp;nbsp; LPCTSTR lpModuleName&amp;nbsp;&amp;nbsp; // モジュール名&lt;br&gt;);&lt;br&gt;lpModuleName&lt;br&gt;NULL を指定すると、呼び出し側プロセスの作成に使われたファイルのハンドルが返ります。&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;゜&amp;nbsp;&amp;nbsp; ゜ (&amp;nbsp; д&amp;nbsp; )ﾎﾟｶｰﾝ&lt;br&gt;呼び出し側プロセスって、Windows Media Playerじゃまいか。 &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;GetModuleHandle()の引数に、自前のDLL名を指定すれば良さそうです。拡張子を略した場合「.dll」が付与されるらしいので、"sample"とだけ指定しておきます。&lt;br&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:8ff4a0ae-3bc6-4eda-bbf1-803c79b23eb4" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c"&gt;//  HINSTANCE hInstance = ::GetModuleHandle(NULL);
  HINSTANCE hInstance = ::GetModuleHandle("sample");
  HBITMAP hBmp= LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
  if(!hBmp)
  {
    //hBmpがNULLであればエラーメッセージを出力する
    OutputMessage(GetLastError());
  }&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;これでようやくhBmpの値を取得する事が出来ました。かれこれ1週間位これで悩んでいましたよ(´；ω；｀) &lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/129184.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>CH3COOH</dc:creator><title>[WMP][C/C++]DLLは自分自身のリソースを使う事が出来ないのでしょうか？</title><link>http://blogs.wankuma.com/ch3cooh/archive/2008/03/23/129183.aspx</link><pubDate>Sun, 23 Mar 2008 09:25:00 GMT</pubDate><guid>http://blogs.wankuma.com/ch3cooh/archive/2008/03/23/129183.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/129183.aspx</wfw:comment><comments>http://blogs.wankuma.com/ch3cooh/archive/2008/03/23/129183.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/129183.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/129183.aspx</trackback:ping><description>&lt;p&gt;エフェクト名も難なく変える事が出来たので、次は絵を表示させてみようと思いました。リソースからのBMPをロードした事が無いので、早速ゲイツに聞いてみます。  &lt;p&gt;サンプルコードを参考に、CSample::Render()にリソースID「IDB_BITMAP1」の画像をロードするようなコードを書きました。  &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:67a62e2b-6f35-44eb-a78b-83ab4f4e7717" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c"&gt;  HINSTANCE hInstance = ::GetModuleHandle(NULL);
  HBITMAP hBmp= LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
  if(!hBmp)
  {
    //hBmpがNULLであればエラーメッセージを出力する
    OutputMessage(GetLastError());
  }&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;これで取得したhBmpを素直に描画してやればいいやなんて思ってましたが、実際実行してみるとhBmpはNULLで返ってきてしまいます。 
&lt;p&gt;覚えたてのエラーメッセージ取得技を使ってみると、エラーメッセージは「指定されたリソースの種類がイメージファイルに見つかりません。」です。&lt;br&gt;Σ('д'；)な、なんやってー!? 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;プロジェクト内を「IDB_BITMAP1」で検索したら定義はちゃんとあります。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:0c270568-6db4-4e65-b8e9-b4cb568f90eb" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c"&gt;#define IDB_BITMAP1                     201
IDB_BITMAP1             BITMAP  DISCARDABLE     "bitmap1.bmp"&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;リソースエディタでBITMAPを追加して、ビルドが走ってるのも確認してるので問題は無いかと思うんだけど……何がおかしいのでしょうか？教えて偉い人！！&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;……と、ここまで書いたけど、自己解決しました。(解決編へ続きます。) &lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/129183.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>CH3COOH</dc:creator><title>[WMP]Windows Media Player用の視覚エフェクト(Visualizer)を作ってみるテスト(2)</title><link>http://blogs.wankuma.com/ch3cooh/archive/2008/03/16/128009.aspx</link><pubDate>Sun, 16 Mar 2008 23:17:00 GMT</pubDate><guid>http://blogs.wankuma.com/ch3cooh/archive/2008/03/16/128009.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/128009.aspx</wfw:comment><comments>http://blogs.wankuma.com/ch3cooh/archive/2008/03/16/128009.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/128009.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/128009.aspx</trackback:ping><description>&lt;P&gt;Wizerdから生成すると、「BARS」と「SCOPE」の2つプリセットが表示されています。今回は簡単に1つプリセットを削って、残った方の名前を変えたいと思います。 
&lt;P&gt; 
&lt;P&gt;WMPは視覚エフェクトにプリセット数を問い合わせ、返された数分だけプリセットの名前を取得したり処理を行います。ですので、プリセット数を「1」で返す様に捏造します。 
&lt;P&gt;プリセット数をWMPに返す処理は、CSample::GetPresetCount()にあります。引数の*pnPresetCountにPRESET_COUNTをぶちこんでいるので、何も考えずにPRESET_COUNTの値を変えます。&lt;/P&gt;sample.h&lt;BR&gt;
&lt;DIV class=wlWriterSmartContent id=scid:812469c5-0cb0-4c63-8c15-c81123a09de7:5f74d411-4b8c-44f0-9d3e-0f7df3a1ecd9 style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;PRE class=c name="code"&gt;// preset values
enum {
    PRESET_BARS = 0,
    PRESET_SCOPE,
    PRESET_COUNT = 1 //←単純にSCOPEを消すと面倒やねん
};&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;これでプリセットは1つしか表示されなくなっています。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;さて、次に残ったプリセット名を変更します。WMPは、プリセット数分だけプリセット名を取得し表示を行います。&lt;/P&gt;
&lt;P&gt;プリセット名をWMPに返す処理は、CSample::GetPresetTitle()にあります。引数の*bstrPresetTitleにCComBSTR bstrTempの文字列を入れています。bstrTempに適当な文字列を突っ込めば、そのまま表示してくれそうです。&lt;/P&gt;
&lt;P&gt;sample.cpp&lt;BR&gt;
&lt;DIV class=wlWriterSmartContent id=scid:812469c5-0cb0-4c63-8c15-c81123a09de7:440460e4-bebe-4bbb-82ad-ed33fff21bed style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;PRE class=c name="code"&gt;    CComBSTR bstrTemp; 

    switch (nPreset)
    {
    case PRESET_BARS:
//        bstrTemp.LoadString(IDS_BARSPRESETNAME); 
        bstrTemp.Append("エターナルフォースブリザード");
        break; 

    case PRESET_SCOPE:
        bstrTemp.LoadString(IDS_SCOPEPRESETNAME); 
        break;
    }&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;リビルドしてWMPを起動します。&lt;BR&gt;&lt;A href="http://ch3cooh.wankuma.com/dialy/img/WMP_14FD5/5.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=385 alt="新規ビットマップ イメージ (5)" src="http://ch3cooh.wankuma.com/dialy/img/WMP_14FD5/5_thumb.png" width=644 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;これで自分で命名したプリセット名が表示されます。&amp;#8230;&amp;#8230;「エターナルフォースブリザード」いつ聞いても笑えます。「効果：使うと相手は死ぬ」なんて補足されると、真剣な会議中でも噴出せます。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;せっかくプリセットに名前を付けたんだから、プラグイン名がそのまま「Sample Plugin」じゃ少々寂しいですよね。&lt;/P&gt;
&lt;P&gt;プラグイン名をWMPに返す処理は、CSample::GetTitle()にあってこんな風に 
&lt;DIV class=wlWriterSmartContent id=scid:812469c5-0cb0-4c63-8c15-c81123a09de7:f3e7775d-4bef-4161-9411-9e652e3ec101 style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;PRE class=c name="code"&gt;    CComBSTR bstrTemp;
    bstrTemp.LoadString(IDS_EFFECTNAME); &lt;/PRE&gt;&lt;/DIV&gt;&lt;BR&gt;String Tableから文字列を取得しています。
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;プリセット名を返す処理と同じ様に、引数の*bstrTitleに突っ込めば良いのかな？と思ったのですが、sample.rgs の中で&lt;BR&gt;
&lt;DIV class=wlWriterSmartContent id=scid:812469c5-0cb0-4c63-8c15-c81123a09de7:902efe6a-1319-4d27-ad5c-8abb1e40b074 style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;&lt;PRE class=c name="code"&gt;val name = s 'res://sample.dll/RT_STRING/#101'
&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR&gt;IDS_EFFECTNAME(プラグイン名のID)を使用しているではないですかっ！！
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;これはソースコードを弄るよか、String Tableの「IDS_EFFECTNAME」を変更する方が楽そうです。&lt;BR&gt;&lt;A href="http://ch3cooh.wankuma.com/dialy/img/WMP_14FD5/5___.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=113 alt="新規ビットマップ イメージ (5)___" src="http://ch3cooh.wankuma.com/dialy/img/WMP_14FD5/5____thumb.png" width=352 border=0&gt;&lt;/A&gt;&amp;nbsp;&lt;BR&gt;「Sample Plugin」を「CH3COOH's Plugin」に変更して、リビルドをかけると&amp;#8230;&amp;#8230;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://ch3cooh.wankuma.com/dialy/img/WMP_14FD5/5__2_.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=437 alt="新規ビットマップ イメージ (5)__2_" src="http://ch3cooh.wankuma.com/dialy/img/WMP_14FD5/5__2__thumb.png" width=644 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;はい、「CH3COOH's Plugin」の出来上がりです。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/128009.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>CH3COOH</dc:creator><title>[WMP]Windows Media Player用の視覚エフェクト(Visualizer)を作ってみるテスト(1)</title><link>http://blogs.wankuma.com/ch3cooh/archive/2008/03/15/127873.aspx</link><pubDate>Sat, 15 Mar 2008 20:57:00 GMT</pubDate><guid>http://blogs.wankuma.com/ch3cooh/archive/2008/03/15/127873.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/127873.aspx</wfw:comment><comments>http://blogs.wankuma.com/ch3cooh/archive/2008/03/15/127873.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/127873.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/127873.aspx</trackback:ping><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;COM何それ美味しいの？……という位COMの知識が皆無なので、WMP Plug-in Wizerdから生成されたVisualizer(視覚エフェクト)のプロジェクトをベースに改造していきたいと思います。なので、一般的な技術者の方は&lt;a href="http://blogs.wankuma.com/melt/archive/2008/03/12/127425.aspx"&gt;meltさんの方のエントリ&lt;/a&gt;をおススメします(｀・ω・´)ゞ  &lt;p&gt;&amp;nbsp; &lt;p&gt;まず、ベースを色々と弄る前にちょっと設定しておきます。 名前が無いと不便ですので、Wizerdでプロジェクトを作成する時に「&lt;strong&gt;sample&lt;/strong&gt;」と入力してあげます。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;WMPが「&lt;strong&gt;C:\Program Files\Windows Media Player&lt;/strong&gt;」に存在している場合、プロジェクト作成後に[プロジェクト]-&amp;gt;[設定]から[ビルド後の処理]タブを選んで&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:c0ed62ec-4dc4-494f-b306-8c537de06214" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c"&gt;copy .\debug\sample.dll "C:\Program Files\Windows Media Player\Visualizations\sample.dll"&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;を追加しておきます。&lt;/p&gt;
&lt;p&gt;これでビルドを行う度に、WMPのVisualizer(視覚エフェクト)フォルダにdllをコピーしてくれます。常に最新のものになっているのでデバッグが楽になります(* ^ーﾟ) &lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/127873.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>CH3COOH</dc:creator><title>[日常][WMP]おまもりんごさん</title><link>http://blogs.wankuma.com/ch3cooh/archive/2008/03/11/127154.aspx</link><pubDate>Tue, 11 Mar 2008 01:04:00 GMT</pubDate><guid>http://blogs.wankuma.com/ch3cooh/archive/2008/03/11/127154.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/127154.aspx</wfw:comment><comments>http://blogs.wankuma.com/ch3cooh/archive/2008/03/11/127154.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/127154.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/127154.aspx</trackback:ping><description>&lt;p&gt;しまった！&lt;br&gt;&lt;A href="http://blogs.wankuma.com/ch3cooh/archive/2008/03/11/127149.aspx"&gt;[WMP]Windows Media Player用の視覚エフェクト(Visualizer)の作り方&lt;/a&gt;にて「&lt;a href="http://www.hirahira.net/products/ringo3/index.html"&gt;おまもりんごさん&lt;/a&gt;」のスクリーンショットを貼り忘れたので、再度エントリ。&lt;/p&gt; &lt;p&gt;&lt;a href="http://ch3cooh.wankuma.com/dialy/img/d655c45003cb_F11/2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="455" alt="新規ビットマップ イメージ (2)" src="http://ch3cooh.wankuma.com/dialy/img/d655c45003cb_F11/2_thumb.png" width="561" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.hirahira.net/products/ringoTrial/downloadTrial.html"&gt;体験版&lt;/a&gt;も用意されてますので是非お試しを。お買い求めは、&lt;a title="http://www.hirahira.net/products/ringo/index.html" href="http://www.hirahira.net/products/ringo/index.html"&gt;hirahira.net / products&lt;/a&gt;の「お取り扱い店舗」よりどぉぞ。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/127154.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>CH3COOH</dc:creator><title>[WMP]Windows Media Player用の視覚エフェクト(Visualizer)の作り方</title><link>http://blogs.wankuma.com/ch3cooh/archive/2008/03/11/127149.aspx</link><pubDate>Tue, 11 Mar 2008 00:31:00 GMT</pubDate><guid>http://blogs.wankuma.com/ch3cooh/archive/2008/03/11/127149.aspx</guid><wfw:comment>http://blogs.wankuma.com/ch3cooh/comments/127149.aspx</wfw:comment><comments>http://blogs.wankuma.com/ch3cooh/archive/2008/03/11/127149.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.wankuma.com/ch3cooh/comments/commentRss/127149.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/ch3cooh/services/trackbacks/127149.aspx</trackback:ping><description>&lt;p&gt;某イベントにて「&lt;a href="http://www.hirahira.net/products/ringo3/index.html"&gt;おまもりんごさん&lt;/a&gt;」なるアプリに遭遇。「視覚エフェクトでこんな事が出来るだなんて!!」と大変感動を覚えて、帰宅後早速Windows Media Player用Visualizerの作り方を調べました(｀･ω･´)ヾ&lt;/p&gt; &lt;h1&gt;Visual Studio 6.0の場合&lt;/h1&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e43cbe59-678a-458a-86a7-ff1716fad02f&amp;amp;displaylang=en"&gt;Download details: Windows Media Player 9 Series Software Development Kit&lt;/a&gt;をDLし、インストールします。&lt;/p&gt; &lt;p&gt;\WMSDK\WMPSDK9\wizards\wmpplugin\wmpwiz.awx&lt;br&gt;を&lt;br&gt;\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE&lt;br&gt;へコピーする事でPulg-In作成Wizerdが使用出来ます。&lt;/p&gt; &lt;h1&gt;Visual Studio.NET 2003の場合&lt;/h1&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e43cbe59-678a-458a-86a7-ff1716fad02f&amp;amp;displaylang=en"&gt;Download details: Windows Media Player 9 Series Software Development Kit&lt;/a&gt;をDLし、インストールします。&lt;/p&gt; &lt;p&gt;&lt;a title="http://support.microsoft.com/kb/830416/ja" href="http://support.microsoft.com/kb/830416/ja"&gt;http://support.microsoft.com/kb/830416/ja&lt;/a&gt;をDLし、インストールすることでPulg-In作成Wizerdが使用出来ます(未検証)。&lt;/p&gt; &lt;h1&gt;Visual Studio 2005の場合&lt;/h1&gt; &lt;p&gt;VS2005でWizerdを使おうとするとメチャクチャ( ﾟДﾟ)ﾏﾝﾄﾞｸｾ-です。知識のある方は是非スクラッチで作られる事をオススメします。僕は知識が無いので頑張りました。&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7614fe22-8a64-4dfb-aa0c-db53035f40a0&amp;amp;DisplayLang=ja"&gt;ダウンロードの詳細 : Microsoft Windows SDK for Windows Vista&lt;/a&gt;をDLし、インストールします。&lt;/p&gt; &lt;p&gt;\Program Files\Microsoft SDKs\Windows\v6.0\Samples\Multimedia\WMP_11\Wizards\VSNET&lt;br&gt;wmpwiz2005.vsz&lt;br&gt;wmpwiz.ico&lt;br&gt;wmpwiz.vsdir&lt;br&gt;を&lt;br&gt;\Program Files\Microsoft Visual Studio 8\VC\vcprojects&lt;br&gt;へコピーします。&lt;/p&gt; &lt;p&gt;コピー後、「wmpwiz2005.vsz」を「wmpwiz.vsz」とリネーム。&lt;/p&gt; &lt;p&gt;wmpwiz.vszをエディタで開き、&lt;strong&gt;&amp;lt;path to wmpwiz directory goes here&amp;gt;&lt;/strong&gt;&lt;br&gt;をインストールした「\WMP_11\Wizards\VSNET」へのフルパスに書き換えます。&lt;/p&gt; &lt;p&gt;&lt;a href="http://ch3cooh.wankuma.com/dialy/img/WMPWindowsMediaPlayerVisualizer_744/b5ad75895f76.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="358" alt="新規ビットマップ イメージ" src="http://ch3cooh.wankuma.com/dialy/img/WMPWindowsMediaPlayerVisualizer_744/_thumb.jpg" width="644" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;はい。出来ました。&lt;/p&gt; &lt;p&gt;Wirzerdに従ってプロジェクトをビルドし、出来た「wmpplugin1.dll」を&lt;br&gt;「C:\Program Files\Windows Media Player\Visualizations」へ&lt;br&gt;コピーする事で、WMPでVisualizerを使用することが出来ます。&lt;/p&gt; &lt;p&gt;&lt;a href="http://ch3cooh.wankuma.com/dialy/img/WMPWindowsMediaPlayerVisualizer_744/2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="326" alt="新規ビットマップ イメージ (2)" src="http://ch3cooh.wankuma.com/dialy/img/WMPWindowsMediaPlayerVisualizer_744/2_thumb.jpg" width="497" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;デフォルトのVisualizerを作成してみました。&lt;br&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:636e3a22-b3d4-472a-8bd6-aa5ed97729cd" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c"&gt;STDMETHODIMP CWmpplugin1::Render(TimedLevel *pLevels, HDC hdc, RECT *prc)&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;で描画処理を入れているみたいですので、サンプルを参考に弄ってあげてくだし。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/ch3cooh/aggbug/127149.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>