在VC6中如何动态创建FLASH控件(VC7中已成功)

sproll 2005-12-03 06:27:06
我在VC6中动态创建macromedia的FLASH控件未成功,而在VS2003中动态创建却成功了,请问有谁碰到过这个问题吗?
VC6中调试时提示是:
Warning: constructing COleException, scode = DISP_E_MEMBERNOTFOUND ($80020003).
First-chance exception in Test.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.
Warning: constructing COleException, scode = DISP_E_MEMBERNOTFOUND ($80020003).
First-chance exception in Test.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.
虽然VC7中也有同样的提示,但是控件却显示在窗口中,而VC6中控件却显示不出来。
我的系统中注册的是版本为8.0.22.0的文件名为Flash8.ocx的FLASH控件。
...全文
356 点赞 收藏 6
写回复
6 条回复
sproll 2005年12月09日
明白了!谢谢!
回复 点赞
etre 2005年12月07日
#if !defined(AFX_ObtGcomFlashOcx_H__00448ECD_0FCC_4543_B0E6_B66DBF5FBF0D__INCLUDED_)
#define AFX_ObtGcomFlashOcx_H__00448ECD_0FCC_4543_B0E6_B66DBF5FBF0D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++

// NOTE: Do not modify the contents of this file. If this class is regenerated by
// Microsoft Visual C++, your modifications will be overwritten.

/////////////////////////////////////////////////////////////////////////////
// ObtGcomFlashOcx wrapper class

class ObtGcomFlashOcx : public CWnd
{
protected:
DECLARE_DYNCREATE(ObtGcomFlashOcx)
public:
CLSID const& GetClsid()
{
static CLSID const clsid
= { 0xd27cdb6e, 0xae6d, 0x11cf, { 0x96, 0xb8, 0x44, 0x45, 0x53, 0x54, 0x0, 0x0 } };
return clsid;
}
virtual BOOL Create(LPCTSTR lpszClassName,
LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL)
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }

BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd, UINT nID,
CFile* pPersist = NULL, BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL)
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
pPersist, bStorage, bstrLicKey); }

// Attributes
public:

// Operations
public:
long GetReadyState();
long GetTotalFrames();
BOOL GetPlaying();
void SetPlaying(BOOL bNewValue);
long GetQuality();
void SetQuality(long nNewValue);
long GetScaleMode();
void SetScaleMode(long nNewValue);
long GetAlignMode();
void SetAlignMode(long nNewValue);
long GetBackgroundColor();
void SetBackgroundColor(long nNewValue);
BOOL GetLoop();
void SetLoop(BOOL bNewValue);
CString GetMovie();
void SetMovie(LPCTSTR lpszNewValue);
long GetFrameNum();
void SetFrameNum(long nNewValue);
void SetZoomRect(long left, long top, long right, long bottom);
void Zoom(long factor);
void Pan(long x, long y, long mode);
void Play();
void Stop();
void Back();
void Forward();
void Rewind();
void StopPlay();
void GotoFrame(long FrameNum);
long CurrentFrame();
BOOL IsPlaying();
long PercentLoaded();
BOOL FrameLoaded(long FrameNum);
long FlashVersion();
CString GetWMode();
void SetWMode(LPCTSTR lpszNewValue);
CString GetSAlign();
void SetSAlign(LPCTSTR lpszNewValue);
BOOL GetMenu();
void SetMenu(BOOL bNewValue);
CString GetBase();
void SetBase(LPCTSTR lpszNewValue);
CString GetScale();
void SetScale(LPCTSTR lpszNewValue);
BOOL GetDeviceFont();
void SetDeviceFont(BOOL bNewValue);
BOOL GetEmbedMovie();
void SetEmbedMovie(BOOL bNewValue);
CString GetBGColor();
void SetBGColor(LPCTSTR lpszNewValue);
CString GetQuality2();
void SetQuality2(LPCTSTR lpszNewValue);
void LoadMovie(long layer, LPCTSTR url);
void TGotoFrame(LPCTSTR target, long FrameNum);
void TGotoLabel(LPCTSTR target, LPCTSTR label);
long TCurrentFrame(LPCTSTR target);
CString TCurrentLabel(LPCTSTR target);
void TPlay(LPCTSTR target);
void TStopPlay(LPCTSTR target);
void SetVariable(LPCTSTR name, LPCTSTR value);
CString GetVariable(LPCTSTR name);
void TSetProperty(LPCTSTR target, long property, LPCTSTR value);
CString TGetProperty(LPCTSTR target, long property);
void TCallFrame(LPCTSTR target, long FrameNum);
void TCallLabel(LPCTSTR target, LPCTSTR label);
void TSetPropertyNum(LPCTSTR target, long property, double value);
double TGetPropertyNum(LPCTSTR target, long property);
double TGetPropertyAsNumber(LPCTSTR target, long property);
CString GetSWRemote();
void SetSWRemote(LPCTSTR lpszNewValue);
CString GetFlashVars();
void SetFlashVars(LPCTSTR lpszNewValue);
CString GetAllowScriptAccess();
void SetAllowScriptAccess(LPCTSTR lpszNewValue);
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_ObtGcomFlashOcx_H__00448ECD_0FCC_4543_B0E6_B66DBF5FBF0D__INCLUDED_)
回复 点赞
sproll 2005年12月06日
(说错了)
etre:
请问ObtGcomFlashOcx是什么类?如何生成的?
我用VC7"添加类"->"ActiveX控件中的MFC类",之后选择从注册表生成:
class CShockwaveFlash : public CWnd
如果选择从文件生成:
class CShockwaveFlash : public COleDispatchDriver
谢谢援手!
回复 点赞
sproll 2005年12月06日
etre:
请问ObtGcomFlashOcx是什么类?如何生成的?
我用VC7"添加类"->"ActiveX控件中的MFC类",之后选择从注册表生成:
class CRealAudio : public CWnd
如果选择从文件生成:
class CRealAudio : public COleDispatchDriver
谢谢援手!
回复 点赞
etre 2005年12月05日
我这样创建是没有问题的
ObtGcomFlashOcx m_wndMediaPlayer;


CRect rectClient(0,0,0,0);
AfxEnableControlContainer();
if(!m_wndMediaPlayer.Create(lpszWindowName,WS_VISIBLE | WS_CHILD, rectClient, this, AFX_IDW_PANE_FIRST)){
m_wndMediaPlayer.DestroyWindow();
DestroyWindow();
return FALSE;
}
回复 点赞
wshcdr 2005年12月04日
帮顶
回复 点赞
发动态
发帖子
ATL
创建于2007-09-28

3025

社区成员

4.8w+

社区内容

ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区公告
暂无公告