Здесь в большей мере проблема не в том, в каком формате получить выходной файл, а в том, что большую часть текста не возможно прочесть ни в одной кодировке, а часть - можно. Вот я и думаю, что проблема в самом коде. к примеру при использовании
GetWindowText(CWnd, SzKeyName, SizeOf(SzKeyName))
выходной текст вообще не читабелен ни в какой кодировке.