사용법

1. stdafx.h 파일에 다음 두줄을 추가합니다.

#import “c:/windows/system32/macromed/Flash/Flash.ocx”

using ShockwaveFlashObjects::IShockwaveFlash;

( #import 한 후 컴파일 하면 flash.tlh 파일과 flash.tli 파일이 생성됩니다. 이 두 파일에 IShockwaveFlash 등등의 인터페이스 정의가 들어있습니다. )

2. Flashcon 을 사용하고자 하는 곳에 다음과 같이 헤더파일을 인클루드 합니다.

a) MFC

#include “FlashconAxWindow.h”

b) ATL/WTL

#include “FlashconAxWindow_WTL.h”

3. 멤버 함수를 추가합니다.

CFlashconAxWindow m_wndFlash;

4-1. OnInitDialog() 등의 초기화 루틴에서 Flashcon 을 동적으로 생성하거나

a) MFC

IShockwaveFlash * pFlash = NULL;

HRESULT hr = m_wndFlash.CreateAxControl(NULL, rc, &pFlash);

ASSERT(SUCCEEDED(hr));

 

// pFlash를 사용하여 플래시 제어

 

pFlash->Release();

pFlash = NULL;

   

b) ATL/WTL

CComPtr<IShockwaveFlash> spFlash;

HRESULT hr = m_wndFlash.CreateAxControl(NULL, rc, &spFlash);

ATLASSERT(SUCCEEDED(hr));

// spFlash를 사용하여 플래시 제어

4-2. 이미 생성한 윈도를 서브클래싱을 통해서 Flashcon 윈도로 변경합니다.

a) MFC

ASSERT(::IsWindow(hwndTemp));

IShockwaveFlash * pFlash = NULL;

HRESULT hr = m_wndFlash.AttachAxControl(hwndTemp, &pFlash);

ASSERT(SUCCEEDED(hr));

 

// pFlash를 사용하여 플래시 제어

 

pFlash->Release();

pFlash = NULL;

b) ATL/WTL

ATLASSERT(::IsWindow(hwndTemp));

CComPtr<IShockwaveFlash> spFlash;

HRESULT hr = m_wndFlash.AttachAxControl(hwndTemp, &spFlash);

ATLASSERT(SUCCEEDED(hr));

// spFlash를 사용하여 플래시 제어

5. 이미 생성된 CFlashconAxWindow 로 부터 IShockwaveFlash 인터페이스 포인터를 구하고 싶은 경우에는

a) MFC

IShockwaveFlash * pFlash = NULL;

HRESULT hr = m_wndFlash.GetControl(&pFlash);

// pFlash를 사용하여 플래시 제어

 

pFlash->Release();

pFlash = NULL;

   

b) ATL/WTL

CComPtr<IShockwaveFlash> spFlash;

HRESULT hr = m_wndFlash.GetControl(&spFlash);

ATLASSERT(SUCCEEDED(hr));

// spFlash를 사용하여 플래시 제어

6. 이미 생성된 CFlashconAxWindow 의 (Flash ActiveX 컨트롤을 호스팅하는) 컨테이너의 IUnknown 인터페이스 포인터를 구하고 싶은 경우에는

a) MFC

IUnknown * pUnkContainer = NULL;

HRESULT hr = m_wndFlash.GetHost(&pUnkContainer);

// pUnkContainer를 사용하여 컨테이너 제어

 

pUnkContainer->Release();

pUnkContainer = NULL;

b) ATL/WTL

CComPtr<IUnknown> spUnkContainer;

HRESULT hr = m_wndFlash.GetHost(&spUnkContainer);

// spUnkContainer를 사용하여 컨테이너 제어

7. Flashcon 의 스크린 좌표를 변경하거나 FlashCon 의 크기를 변경하고 싶은 경우

CFlashconAxWindow 의 윈도 관리 함수(SetWindowPos, MoveWindow 등등)를 사용합니다.

ex) (100, 100) 에 가로 200, 세로 300 크기로 변경 (*** 여기서 좌표는 항상 스크린 좌표입니다. ***)

m_wndFlash.SetWindowPos(NULL, 100, 100, 200, 300, SWP_NOZORDER);

Leave a Reply

Your email address will not be published. Required fields are marked *