Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 0
Регистрация: 15.02.2010
Сообщений: 26

Как проиграть flash ролик в своём приложении?

28.09.2012, 08:19. Показов 1136. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток! Люди как проиграть flash ролик в своём приложении?
Нашёл такой пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
// 
// SWF In Window Example
// by Napalm
// 
 
#import "C:\windows\system32\macromed\flash\flash.ocx" rename_namespace("Flash")
#pragma comment(lib, "atl")
#include  <atlbase.h>
CComModule _Module;
#include <atlwin.h>
#include <windows.h>
#include <string.h>
 
HINSTANCE g_hInst;
 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
{
    static Flash::IShockwaveFlash* m_pFlash;
    static HWND hWndActiveX;
    switch(uMessage)
    {
    case WM_CREATE:
        {
            WCHAR wcPath[MAX_PATH];
            RECT rc; GetClientRect(hWnd, &rc);
            hWndActiveX = CreateWindowEx(0, L"AtlAxWin", NULL, WS_CHILD | WS_VISIBLE,
                0, 0, rc.right, rc.bottom, hWnd, NULL, g_hInst, NULL);
            if(FAILED(CoCreateInstance(__uuidof(Flash::ShockwaveFlash), NULL, CLSCTX_ALL,
                __uuidof(Flash::IShockwaveFlash), (void**)&m_pFlash)))
                return -1;
            if(FAILED(AtlAxAttachControl(m_pFlash, hWndActiveX, NULL))){
                m_pFlash->Release();
                return -1;
            }
            GetCurrentDirectoryW(MAX_PATH, wcPath);
            wcscat(wcPath, L"\\shapes.swf");
            HRESULT hres = m_pFlash->LoadMovie(0, wcPath);
            m_pFlash->Menu = VARIANT_FALSE;
        }
        return 0;
 
    case WM_SIZE:
        MoveWindow(hWndActiveX, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE);
        return 0;
 
    case WM_PAINT:
    case WM_ERASEBKGND:
        ValidateRect(hWnd, NULL);
        return 0;
 
    case WM_DESTROY:
        DestroyWindow(hWndActiveX);
        m_pFlash->Release();
        PostQuitMessage(0);
        return 0;
    }
 
    return DefWindowProc(hWnd, uMessage, wParam, lParam);
}
 
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow)
{
    CoInitialize(NULL);
    AtlAxWinInit();
    g_hInst = hInstance;
 
    WNDCLASSEX wcex = {
        sizeof(WNDCLASSEX), 0, WndProc, 0, 0, g_hInst, LoadIcon(NULL, IDI_APPLICATION),
        LoadCursor(NULL, IDC_ARROW), (HBRUSH)(COLOR_WINDOW + 1), NULL, L"SWFWin", NULL,
    };
    if(!RegisterClassEx(&wcex))
        return MessageBox(HWND_DESKTOP, L"Could not register class!", L"Error", MB_ICONERROR | MB_OK);
 
    int nX = ((GetSystemMetrics(SM_CXSCREEN) - 400) / 2),
        nY = ((GetSystemMetrics(SM_CYSCREEN) - 340) / 2);
    HWND hWnd = CreateWindowEx(0, wcex.lpszClassName, L"SWF In Window Example - by Napalm",
        WS_OVERLAPPEDWINDOW, nX, nY, 400, 340, HWND_DESKTOP, NULL, g_hInst, NULL);
    if(!hWnd)
        return MessageBox(HWND_DESKTOP, L"Could not create window!", L"Error", MB_ICONERROR | MB_OK);
 
    ShowWindow(hWnd, nCmdShow);
 
    MSG Msg;
    while(GetMessage(&Msg, NULL, 0, 0)){
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
 
    CoUninitialize();
    return (int)Msg.wParam;
}
Заменил строку
C++
1
#import "C:\windows\system32\macromed\flash\flash.ocx" rename_namespace("Flash")
на #import "C:\windows\system32\macromed\flash\Flas h64_11_2_202_235.ocx" rename_namespace("Flash") компилятор начил выдавать ошибку мол немогу найти такой файл. После файлы Flash64_11_2_202_235.ocx и FlashUtil64_11_2_202_235_ActiveX.dll положил к сибе в проект и соответственно заменил ту строку с импортом на #import "Flash64_11_2_202_235.ocx" rename_namespace("Flash"). Всё стало компилироваться, но не хочет работать... загружается окно а ролик не проигрывается...

Добавлено через 17 часов 21 минуту
Почему то мне кажется, что я как то неправильно подключаю ActiveX компонент...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.09.2012, 08:19
Ответы с готовыми решениями:

Проиграть ролик в обратную сторону
stop(); f1.onPress = function() { play(); }; f1.onRelease = function() { stop(); }; f2.onPress = function() { };

Как сделать самозапускающийся ролик во flash
Здравствуйте! Делаю мультимедийное пособие со флеш. Хочется чтоб было самозапускающимся если можно. Как это сделать?

Как запихать Flash ролик в *.exe файл?
Помогите запихать Flash ролик в *.exe файл. John

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.09.2012, 08:19
Помогаю со студенческими работами здесь

Как вместить Flash ролик в программу на Delphi 8 ???
Как вместить Flash ролик в программу на Delphi 8 ??? Если кто знает , то подскажите пожалуста ...

Как поставить flash ролик в центр экрана CSS
Как разместить ролик размером 300px на 300px в центр экрана, а то когда в процентах выставляю то на разных разрешениях флеш ролик в разных...

Как воспроизвести flash ролик на форме простого GUI приложения?
Вс ре решил создать отдельную тему. Может есть у кого - нибуть соображения, как воспроизвести SWF файл на форме простого GUI приложения...

Как установить автоматическое отлючение дисплея, если проигрывается какой-нибудь flash-ролик?
Друзья! Вот настройки автоматического отлючения дисплея. Но естессно, дисплей не погаснет, если будет играть какой-нибудь flash-ролик,...

DirectShow, проиграть видео в своем окне?
IGraphBuilder::RenderFile играет в отдельном окне, реально ли как то проиграть файл в своем уже существующем окне? Добавлено через 20...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru