Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2010, 18:16   #1
Leo_ня
 
Регистрация: 03.01.2010
Сообщений: 7
По умолчанию Flash в программе

Пишу (на FASM) лоадер для онлайн Flash-игры. Есть проблема с интеграцией сабжа в мою программу.

Я пытаюсь использовать COM-объект IShockwaveFlash.
Понадёргал кода, нужного для COM-объектов. Получилось таки запустить мувик (игру).

Но в игре не работает клавиша ввода. Вообще никакого эффекта при нажатии Enter'а.

Я решил, что это из-за несовместимости чужого кода (он был для IWebBrowser2) с моим объектом. Так как в этом я не разбираюсь и самостоятельно написать бы обработчики функций (я даже не знаю каких) не смог, я попробовал ATL.

Т.е. я создаю экземпляр IShockwaveFlash, а затем вызываю AtlAxAttachControl, передавая указатель на IUnknown нужного объекта и хендл окна, к которому привязывать контрол.
Код:
		CLSID_Flash		GUID D27CDB6E-AE6D-11cf-96B8-444553540000
		IID_IShockwaveFlash	GUID D27CDB6C-AE6D-11CF-96B8-444553540000
		LoadMovie equ 4*58

 
	invoke CoCreateInstance,CLSID_Flash,NULL,CLSCTX_ALL,IID_IShockwaveFlash,addr poFlash
	invoke AtlAxAttachControl,[poFlash],[H],0
	comncall poFlash,LoadMovie,0,szSelectedSWF
(comncall - переделанный макрос cominvk для вызова методов, но в нём указывается оффсет метода, а не его имя из списка interface. 4*58 - оффсет LoadMovie).

И опять не работает интер.

Что я делаю не так? Может не хватает каких-то опций? Ведь в Delphi компонент флеша не имеет таких проблем, хотя использует тот же COM-объект. И в IE тоже такого нет.

Прошу помощи

P.S: адрес флешки: _http://transformice.com/ru/ChargeurTransformice.swf
P.P.S: подходящего раздела не нашёл.
Leo_ня вне форума Ответить с цитированием
Старый 22.07.2010, 20:09   #2
Xatr
Форумчанин
 
Аватар для Xatr
 
Регистрация: 17.09.2008
Сообщений: 349
По умолчанию

как это можно реализовать в масме?
нужно только воспоизведение swf анимации.
swf файл в ресурсах.
если чем помог, поставьте отзыв на весы
Xatr вне форума Ответить с цитированием
Старый 23.07.2010, 12:36   #3
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Не знаю почему, но меня эта тема тож заинтересовала.
Вот наковырял заготовочку. Грузит пока SWF внешний (test.swf должен рядышком лежать с программой).
А вот с ресурсами (если имеются ввиду ресурсы программы) сложнее дело обстоит. Советуют использовать интерфейс IBindHost. Но я не понял, как его применять.

А вот по привидённой URL_ке http://transformice.com/ru/ChargeurTransformice.swf у меня просто фон с мышами загрузился и всё.
Так и должно быть?

Ну и примерчик на масме, не знаю, заработает у кого али нет.
Вложения
Тип файла: rar testSWF.rar (79.9 Кб, 22 просмотров)
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 23.07.2010, 14:24   #4
Xatr
Форумчанин
 
Аватар для Xatr
 
Регистрация: 17.09.2008
Сообщений: 349
По умолчанию

вот блин у меня atl.inc нету.
выложите этот файл и atl.lib, если он есть plz
если чем помог, поставьте отзыв на весы

Последний раз редактировалось Xatr; 23.07.2010 в 14:27.
Xatr вне форума Ответить с цитированием
Старый 23.07.2010, 19:57   #5
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Цитата:
вот блин у меня atl.inc нету.
Так это, сделайте.
1. Проверить наличие файла Windows\System32\atl.dll
2. В директории masm32\include сделать батник с примерно таким содержимым:

Код:
@echo off
inc2l atl.inc
move *.lib C:\masm32\lib
3. В директории masm32\include сделать текстовый файл atl.inc с прототипами функций, которые вы будете использовать (не обязательно все экспортируемые). У меня он, например, такой пока:

Код:
AtlAxWinInit PROTO 
AtlAxAttachControl PROTO :DWORD, :DWORD, :DWORD
4. Запустить батник, созданный в пункте 2.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 25.07.2010, 00:27   #6
Xatr
Форумчанин
 
Аватар для Xatr
 
Регистрация: 17.09.2008
Сообщений: 349
По умолчанию

я думаю, что функциями
FindResource, LoadResource, LockResource
здесь не ограничиться...
если чем помог, поставьте отзыв на весы
Xatr вне форума Ответить с цитированием
Старый 25.07.2010, 20:38   #7
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Чисто теоретически, конечно можно вытащить просто SWF-ку из ресурсов (FindResource, LoadResource, LockResource) и затем запустить её как обычный внешний файл ч.з. LoadMovie. Но это нерациональный подход. Правильнее будет натравить на наш экзешник какой-нибудь интерфейс высокоуровневый. Тот же самый LoadMovie вот такую URL-ку res://C:\main_assembler\mainSWF\LoadSWF.e xe/#8000/#8001 понимать не хочет.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Flash и БД 1С ]tach[ WordPress и другие CMS 0 06.03.2010 10:30
Flash ivanych Свободное общение 7 30.12.2009 11:44
Flash kaviga Помощь студентам 2 20.10.2009 11:56
Flash? Tirendus Свободное общение 5 31.07.2009 13:40