Как внедрить Flash Player ActiveX с помощью BoxedApp SDK
Начнем.
Одна из важнейших фич SDK - это возможность внедрения ActiveX в приложение. BoxedAppSDK_RegisterCOMLibraryInVirtualRegistry регистрирует виртуальный файл в виртуальном реестре. Более точно, эта функция загружает указанный файл (LoadLibrary) и вызывает DllRegisterServer (экспортируемый из этой DLL). Все изменения, сделанные этой функцией, сохраняются в виртуальном реестре. . Системный реестр остается нетронутым.
После этого CoCreateInstance (и прочие функции такого рода) будут получать корректную информацию из системного реестра — такую, будто бы ActiveX действительно зарегистрирован в системе!
Внедрение Flash ActiveX:
1. Инициализация BoxedApp SDK:
BoxedAppSDK_Init();
2. Создаем виртуальный файл с Flash.ocx:
LPVOID pBuffer;
DWORD dwSize;
// LoadResourceHelper получает указатель на начало ресурса и его размер
LoadResourceHelper(
MAKEINTRESOURCE(IDR_BIN_FLASH_OCX),
_T("BIN"),
pBuffer,
dwSize);
HANDLE hVirtualFile1 =
BoxedAppSDK_CreateVirtualFile(
_T("C:\\Flash9e.ocx"),
GENERIC_READ,
FILE_SHARE_READ,
NULL,
CREATE_NEW,
0,
NULL);
DWORD dwTemp;
WriteFile(hVirtualFile1, pBuffer, dwSize, &dwTemp, NULL);
CloseHandle(hVirtualFile1);
3. Регистрируем COM библиотеку в виртуальном реестре:
BoxedAppSDK_RegisterCOMLibraryInVirtualRegistry(_T("C:\\Flash9e.ocx"));
Теперь, когда бы вы не создавали экземпляр Flash ActiveX, подсистема COM (CoCreateInstance) будет читать информацию из виртуального реестра и создавать ActiveX, используя виртуальную DLL.
В частности, используя этот метод вы можете создавать приложения, которые готовы работать без инсталляции (т.н. “portable applications”), даже если они используют ActiveX-ы или другие COM-объекты. Просто создавайте виртуальный файл с DLL-кой и вызывайте BoxedAppSDK_RegisterCOMLibraryInVirtualRegistry.
Related links:
- Загрузка примеров BoxedApp SDK
- Лучшее решение для работы с Flash ActiveX (внедрение также поддерживается)
- Функция BoxedAppSDK_RegisterCOMLibraryInVirtualRegistry


Написать комментарий
Вы должны залогиниться чтобы комментировать. Залогиниться