ちょっと試してきました。
とりあえず buf がらみの処理は変数宣言も含めて削除してみますた。
すると。確かに印刷される。やっぱりどこかでつぶしてる?
それではと、途中に

 {
  char buf[256];
  *buf = '\0';
  DrawText(pd.hDC, buf, -1, &rc, format);
 }

と入れてみますた。出なくなりました。何で???

>>595
そういうわけで文字列処理部分ではなさそうです。

>>596
あ、ちょっと説明が足りませんでしたが、どの段階で印刷が開始されるかは
よくわかってないまま書きました。まぁ印刷される場合があるということは
処理の流れ自体はあってるだろうということで。

>>597
というかエラーにならないんです。あたかも正常に終わったかのように
印刷されないんです。

何か見落としてるかもしれないので他にもヒントありましたらお願いします。