Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
-Xeon-
2 / 2 / 0
Регистрация: 15.02.2010
Сообщений: 26
#1

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

28.09.2012, 08:19. Просмотров 622. Ответов 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\Flash64_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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2012, 08:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как проиграть flash ролик в своём приложении? (C++):

Как проиграть видео avi - C++
Как проиграть видео avi в окне (c++)?

Как в консоли проиграть музыку - C++
Вот и проблема мой код запускает проигрыватель, возник вопрос как сделать проигрывание в консоли? И как задавать адрес файла самому? ...

Как проиграть видео с YouTub'a? - C++
Привет. Извините что не совсем в нужный раздел. Как бы мне проиграть видео с ютуба в своём приложении? (не важно формс, или что то другое),...

Как проиграть mp3 с помощью VC++? - C++
I don't know how to play mp3 sound in vc6++ please help me???!!!

Кто как обзывает переменные / типы в своём коде? (нотация) - C++
Не ради тролинга, а ради интереса и любопытства. Столько разных API и фрейворков, у всех свой стиль нотации, подстраиваться под...

С помощью какого кода можно запустить как либо файл по локальной сети, и так-же на своём компе - C++
Всем доброго времени суток. У меня несколько вопросов. 1. С помощью какого кода можно запустить как либо файл по локальной сети, и...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2012, 08:19
Привет! Вот еще темы с ответами:

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

Как работать с html в своём приложении? - C#
Хочу написать программу, (в общем что-то типа калькулятора, а именно &quot;Оценка возможности банкротства коммерческих банков на основе методики...

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

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru