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();
}