###前提・実現したいこと
VisualStudio2005(言語はC++)を使用して、実機にVisualC++2013の再配布可能ファイルがインストールされているかどうかを検出しようとしております。
###発生している問題・エラーメッセージ
所定の関数にてインストールされている製品情報を取得しようとするのですが、VisualC++2013の再配布可能ファイルがインストールされているのにも関わらず、情報が返ってきません。
###該当のソースコード
DWORD dwSize = 0;
char pAplname = NULL;
UINT res;
for (int i = 0;; i++) {
memset(proname, '\0', sizeof(proname));
if (::MsiEnumProductsA(i, proname) == ERROR_SUCCESS) {
dwSize = 0;
res = ::MsiGetProductInfoA(proname, INSTALLPROPERTY_INSTALLEDPRODUCTNAME, NULL, &dwSize);
if (res == ERROR_SUCCESS) {
if (pAplname) {
delete[] pAplname;
pAplname = NULL;
}
dwSize += 1;
if ((pAplname = new char[dwSize]) == NULL) {
return -1;
}
memset(pAplname, '\0', sizeof(char)(dwSize));
res = ::MsiGetProductInfoA(proname, INSTALLPROPERTY_INSTALLEDPRODUCTNAME, pAplname, &dwSize); if (res == ERROR_SUCCESS) { CString tstStr = pAplname; if (tstStr.Find(_T("Microsoft Visual C++ 2013 Redistributable")) != -1) { break; } } } } else { break; }
}
if (pAplname) {
delete[] pAplname;
pAplname = NULL;
}
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
Visual Studio 2005
C++