MCPcopy Create free account
hub / github.com/bruderstein/nppPluginManager / setInstalledVersion

Method setInstalledVersion

pluginManager/src/PluginList.cpp:727–793  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

725}
726
727BOOL PluginList::setInstalledVersion(tstring pluginFilename, Plugin* plugin)
728{
729 DWORD handle;
730 DWORD bufferSize = ::GetFileVersionInfoSize(pluginFilename.c_str(), &handle);
731
732 if (bufferSize <= 0)
733 return FALSE;
734
735 unsigned char* buffer = new unsigned char[bufferSize];
736 ::GetFileVersionInfo(pluginFilename.c_str(), handle, bufferSize, buffer);
737
738 /*struct LANGANDCODEPAGE {
739 WORD wLanguage;
740 WORD wCodePage;
741 } *lpTranslate;*/
742
743 VS_FIXEDFILEINFO* lpFileInfo;
744
745 UINT cbFileInfo;
746
747 VerQueryValue(buffer,
748 _T("\\"),
749 (LPVOID*)&lpFileInfo,
750 &cbFileInfo);
751
752 if (cbFileInfo)
753 {
754 plugin->setInstalledVersion(PluginVersion((lpFileInfo->dwFileVersionMS & 0xFFFF0000) >> 16,
755 lpFileInfo->dwFileVersionMS & 0x0000FFFF,
756 (lpFileInfo->dwFileVersionLS & 0xFFFF0000) >> 16,
757 lpFileInfo->dwFileVersionLS & 0x0000FFFF));
758 /*
759 HRESULT hr;
760 TCHAR subBlock[50];
761 hr = StringCchPrintf(subBlock, 50,
762 _T("\\StringFileInfo\\%04x%04x\\FileVersion"),
763 lpTranslate[0].wLanguage,
764 lpTranslate[0].wCodePage);
765
766 if (FAILED(hr))
767 {
768 return FALSE;
769 }
770 else
771 {
772 TCHAR *fileVersion;
773 UINT fileVersionLength;
774 if(::VerQueryValue(buffer, subBlock, reinterpret_cast<LPVOID *>(&fileVersion), &fileVersionLength))
775 {
776 if (fileVersion)
777 plugin->setInstalledVersion(PluginVersion(fileVersion));
778 }
779 }
780 */
781
782 }
783 else
784 {

Callers 1

checkInstalledPluginsMethod · 0.45

Calls 2

c_strMethod · 0.80
PluginVersionClass · 0.70

Tested by

no test coverage detected