Как найти идентификатор кодовой страницы файла сообщения Outlook (.msg)

Я хочу получить идентификатор кодовой страницы, который использовался при написании электронного письма (файл Outlook .msg). Свойство, которое содержит эту информацию, — PidTagMessageCodepage. Но я не могу найти, как получить к нему доступ с помощью С++.

Файл сообщения (.msg), который я пытаюсь прочитать, был создан на компьютере с Windows, а языковой стандарт системы был установлен на английский. Это электронное письмо было отправлено в другую систему с японским языковым стандартом (Кодовая страница Shift-JIS). Я хочу определить исходную кодовую страницу из файла сообщений и передать ее MultiByteToWideChar()

Заранее спасибо.


person Niroshan    schedule 23.02.2012    source источник
comment
Какой доступ к сообщению у вас есть? Необработанный файл MSG в файловой системе? Перспективы?   -  person Ben    schedule 23.02.2012
comment
@Ben Raw файл MSG в файловой системе   -  person Niroshan    schedule 24.02.2012


Ответы (1)


Чтобы получить доступ к этим свойствам, вы должны использовать расширенные методы MAPI. В CodeProject для этого есть очень полезная библиотека MAPIEx.

Если вы не хотите использовать расширенный MAPI, вы можете попытаться открыть и обработать данные в файле .msg напрямую. Файлы .msg по сути являются составным документом OLE2 http://msdn.microsoft.com/en-us/library/windows/desktop/ms693383%28v=vs.85%29.aspx, и вы можете получить доступ к их свойствам напрямую, используя метод StgCreateStorageEx и другие связанные с ним. Чтобы узнать, какое хранилище или потоки вам нужно искать, есть несколько приложений, которые поддерживают исследование составных файлов. Просто погуглите.

person bpatrao    schedule 23.02.2012