BSTR を char に変換するなら WideCharToMultiByte()

 //BSTR を char に変換----------------------------------------------

 char buf2[64]="";

 WideCharToMultiByte(
  CP_ACP,   // コードページ ANSI コードページ
  0,   // 処理速度とマッピング方法を決定するフラグ
  (OLECHAR*)bstr,  // ワイド文字列のアドレス
  -1,   // ワイド文字列の文字数
  buf2,   // 新しい文字列を受け取るバッファのアドレス
  sizeof(buf2) - 1,  // 新しい文字列を受け取るバッファのサイズ
  NULL,   // マップできない文字の既定値のアドレス
  NULL   // 既定の文字を使ったときにセットするフラグのアドレス
 );

 printf(buf2);

ネタ元