调用OCX控件时的声明和实现

FirstLessonOcx.h
 
#if !defined(AFX_FIRSTLESSONOCX_H__0CA538A0_1E9A_49D9_ADBE_0D21B83849DF__INCLUDED_)
#define AFX_FIRSTLESSONOCX_H__0CA538A0_1E9A_49D9_ADBE_0D21B83849DF__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.

/
// FIRSTLESSONOCX wrapper class

class CFirstLessonOcx : public CWnd
{
protected:
	DECLARE_DYNCREATE(CFirstLessonOcx)
public:
	CLSID const& GetClsid()
	{
		static CLSID const clsid
			= { 0x58134c6c, 0x7b0e, 0x4a14, { 0xb0, 0x5b, 0x15, 0xc4, 0x9c, 0x6c, 0x6c, 0xdd } };
		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:
	long StartMonitor(LPCTSTR szDevIDNO, long nChannel);
	void CloseAllSound();
	long GetLayout();
	void SetLayout(long propVal);
};

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

#endif // !defined(AFX_FIRSTLESSONOCX_H__0CA538A0_1E9A_49D9_ADBE_0D21B83849DF__INCLUDED_)


FirstLessonOcx.cpp
 
// 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.


#include "stdafx.h"
#include "FirstLessonOcx.h"

/
// CCMSV6OCX

IMPLEMENT_DYNCREATE(CFirstLessonOcx, CWnd)

/
// CFirstLessonOcx properties

long CFirstLessonOcx::StartMonitor(LPCTSTR szDevIDNO, long nChannel)
{
	long result;
	static BYTE parms[] = VTS_BSTR VTS_I4;
	InvokeHelper(0x1, DISPATCH_METHOD, VT_I4, (void*)&result, parms, szDevIDNO, nChannel);//适合有输入参数,有返回值的调度接口
	return result;
}

void CFirstLessonOcx::CloseAllSound()
{
	InvokeHelper(0x2, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);//无输入参数无返回值,也可调用此接口
}

long CFirstLessonOcx::GetLayout()
{
	long result;
	GetProperty(0x3, VT_I4, (void*)&result);//适合无输入参数,只获取返回值的调度接口
	return result;
}

void CFirstLessonOcx::SetLayout(long propVal)
{
	SetProperty(0x4, VT_I4, propVal);//适合无返回的调度接口
}

ActiveXTestDlg.h
// ActiveXTestDlg.h : 头文件
//

#pragma once
#include "FirstLessonOcx.h"

// CActiveXTestDlg 对话框
class CActiveXTestDlg : public CDialog
{
// 构造
public:
	CActiveXTestDlg(CWnd* pParent = NULL);	// 标准构造函数

// 对话框数据
	enum { IDD = IDD_ACTIVEXTEST_DIALOG };

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 支持

private:
	CFirstLessonOcx m_ocx;

// 实现
protected:
	virtual BOOL OnInitDialog();
};

ActiveXTestDlg.cpp
void CActiveXTestDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_ACTIVEXFIRSTLESSCTRL1, m_ocx);
}


BOOL CActiveXTestDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	
	//如果不绑定控件,可自己创建,必须用WS_CHILD,并指定父窗口  
	//m_ocx.Create(_T("My ocx"), WS_CHILD | WS_VISIBLE, CRect(10,10,100,30), this, 100);

	m_ocx.GetLayout();
}




                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
appemit 支持chrome firefox edge IE等浏览器最新版本开发、调用dll,ocx, flash appemit.com 最新版本 AppEmit是应用程序(尤其是浏览器)与本地程序间互相通信的易扩展的轻量级中间件。 AppEmit is an extensible lightweight middleware for communication between applications (especially browsers) and local programs. 主要采用了HTML5国际标准的Web Socket进行通话,默认为异步, JSON格式传递参数。  主要功能: 1) 在几乎所有浏览器播放含有flash的网页或Flash文件,包括swf交互动画、flv影视等 2) 在浏览器打开、操作本地文件,比如阅读PDF;创建、阅读、编辑Office文件,且支持JavaScript代码操作 3) 在浏览器中调用第三方DLL、OCX组件以及系统winApi函数,tcc、python、lua等 4) 开发本地硬件DLL驱动模块的封装插件,实现在网页中操作控制本地的读卡器、打印机、扫描仪、高拍仪、U盾等各种硬件设备 5) 各个应用程序之间通信,比如聊天 6) 在Chrome里嵌入IE内核网页,保护源码,可以不修改原有的ActiveX读取html,同支持开源内核wke和blink  解决问题 1) 国际市场份额68%以上的chrome浏览器(数据来源Netmarketshare;国内25%以上)在2020年12月后不再支持flash,而微软的edge也不支持ActiveX。 2) 客户习惯使用浏览器来处理各种业务。 3) 游戏商、银行、医院、电力、硬件等企业客户使用dll、ActiveX、flash等文件的场景需要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值