Last Updated 2003/11/20
Programming Tips Windows  索 引 
ファイルプロパティ言語情報取得
2003/11/20

EXE ファイルなど,プロパティのバージョン情報に言語が存在する.
その言語情報を取得するには,GetFileVersionInfo() と VerQueryValue() を使用する.

struct CMyLANGANDCP
{
        WORD m_wLanguage;
        WORD m_wCodePage;
};

上記の構造体を定義する.

CMyLANGANDCP    *pLang;
VerQueryValue( lpVer, "\\VarFileInfo\\Translation", (LPVOID*)&pLang, &uiVerSize );

pLang に CMyLANGANDCP の配列への先頭アドレスが渡される.
uiVerSize からこの配列の要素数が判断できる.

あとは各言語について
wsprintf(langcharset, "%04x%04x", pLang->m_wLanguage, pLang->m_wCodePage);
とすれば,lang-charset が取得できる.

pLang はポインタのポインタを渡している.
pLang に予めメモリを割り当てる必要はなく,逆に割り当ててしまうと迷子となりリークする原因となってしまう.

VerQueryValue() を呼出すことにより,予め lpVer に割り当てられていたメモリ内の LANGID を示す位置が pLang に返される.


参照
OSの言語
ファイルのプロパティ
バージョン取得
前後のTips
ファイルプロパティ言語情報取得

DSS ProgrammingTipsCGI Ver2.02