nkjpj Ответов: 1

Как получить информацию о версии элемента управления activex


Я попал в эту беду:

Я написал ActiveX с именем "Comp.ocx"и использовал его в приложении с именем "Test.exe".
Я хочу, чтобы элемент управления ActiveX отображал свою собственную информацию о версии.
Затем я попытался использовать эти коды в ActiveX:
HRSRC hsrc = FindResource(0,MAKEINTRESOURCE(VS_VERSION_INFO),RT_VERSION);
HGLOBAL hgbl=LoadResource(0,hsrc);
BYTE * pBt = (BYTE*)LockResource(hgbl);
VS_FIXEDFILEINFO* pFInfo = (VS_FIXEDFILEINFO*)(pBt+40);
CString str;
str.Format("ActiveX Version:%d.%d.%d.%d",HIWORD(pFInfo->dwFileVersionMS),
  LOWORD(pFInfo->dwFileVersionMS),HIWORD(pFInfo->dwFileVersionLS),
  LOWORD(pFInfo->dwFileVersionLS));
...


Когда я бежал "Test.exe",я обнаружил, что элемент управления ActiveX не смог отобразить свою собственную версию
информация,но отображается информация о версии "Test.exe".

Я попытался найти,как решить эту проблему, но ничего.

Кто-нибудь может мне помочь? Большое спасибо!!!

Что я уже пробовал:

Я попытался поискать в сети,как решить эту проблему, но нашел бесполезным.

1 Ответов

Рейтинг:
11

KarstenK

В вашем коде вы извлекаете ресурсы exe.modul. То есть правильно читать документацию. Ocx работает как боковая загрузка в exe-файле.

Если вам нужна информация о версии ocx, то вам лучше всего реализовать интерфейс, чтобы запросить ее. Какой сюрприз! ;-)

Другое решение состоит в том, чтобы (manuelly) выполнить поиск в реестре и найти, где хранится регистрационная информация, а затем реализовать некоторую выборку пути, где хранится ocx, и получить информацию о файле. Обычно где-то в HKR в CLSID.