C++
相关资料:
解决方案,
白皮书,
产品介绍,
产品比较,
开发文档,
成功案例,
产品源代码,
授权码工具,
个人版价格,
企业版价格,
政企版价格,
年费版价格,
OEM版价格,
源码版价格,基础组件,
示例下载,控件升级,
在线演示,
在线文档,并发能力,上传速度,下载速度,
Windows控件安装,
macOS控件安装,
deb控件安装,
rpm控件安装,安装引导,控件部署,控件升级,
IE9加载控件,
IE8加载控件,
示例下载:
asp.net-vs2013,
asp.net-vs2010,
jsp-eclipse,
jsp-springboot,
jsp-myeclipse,
php,
vue-cil,
WinForm(C#),
C++(WTL),
视频教程:
php7测试,
php5测试,
vue-cli-测试,
asp.net-IIS Express测试,
asp.net-IIS测试,
asp.net-阿里云(oss)测试,
asp.net-华为云(obs)测试,
jsp-springboot测试,
sm4加密传输,压缩传输,
Discuz集成,
源码编译:
ActiveX(x86),
ActiveX(x64),
Windows(npapi),
NativeMessage,
macOS,
Linux(海光,兆芯),
arm(鲲鹏,飞腾),
龙芯mips,
龙芯LoongArch,
ASP.NET教程:
asp.net,
IIS Express,
IIS,IIS-Https,
Oracle,
minio,fastdfs,
阿里云对象存储(oss),
华为云对象存储(obs),
jsp-eclipse教程:测试教程,
oracle,
mysql,
SQL Server,
minio,fastdfs,
阿里云对象存储(oss),
华为云对象存储(obs),
jsp-springboot教程:测试教程,
minio,fastdfs,
阿里云对象存储(oss),
华为云对象存储(obs),
jsp-myeclipse教程:
mysql,
oracle,
SQL Server,fastdfs,
php教程:测试教程,
minio,fastdfs,
阿里云对象存储(oss),
教程:
WinForm(C#)测试,
WTL(C++)测试,
在vue.js中使用,
在vue-cli中使用,
eclipse导入up6,组件引用,自定义事件,自定义业务字段,自定义文件保存路径,授权码,加密存储,加密传输,
使用Minio存储,使用FastDFS存储,
使用达梦数据库,数据表字段设计,监控fd_create流程,监控f_create流程,监控f_list.jsp流程,
相关问题:WebSocket连接失败,md5计算完毕后卡住,域名未授权,网站安全系统拦截,
联系我们:
QQ:1269085759(技术),
QQ:3040217208(售后),
QQ:1085617561(商务),
微信:13235643658,
邮箱:1269085759@qq.com,
1085617561@qq.com,
qwl@ncmem.com,

演示在C++(WTL)中引用up6控件,
GIT:https://gitee.com/xproer/up6-cpp-wtl
1. 定义事件接收器
#pragma once
#pragma warning (disable : 4146)
#import "C:jmzyappsup6HttpUploaderApp.tlb" named_guids, raw_interfaces_only
#include "HttpUploaderApp_i.h"
class up6Event : public IDispEventImpl<0,up6Event,&DIID__IHttpPartitionEvents,&LIBID_HttpUploaderAppLib,1,0>
{
public:
up6Event();
~up6Event();
STDMETHOD(recvMessage)(BSTR msg);
BEGIN_SINK_MAP(up6Event)
SINK_ENTRY_EX(0, DIID__IHttpPartitionEvents, 1, recvMessage)
END_SINK_MAP()
};
.cpp代码
#include "stdafx.h"
#include "up6Event.h"
up6Event::up6Event(){}
up6Event::~up6Event(){}
STDMETHODIMP up6Event::recvMessage(BSTR msg)
{
MessageBoxW(nullptr, L"recvMessage", L"", MB_OK);
return S_OK;
}
2.打开文件选择窗口,并触发recvMessage事件
LRESULT CMainDlg::openFile_click(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
CLSID clsid;
HRESULT hr = ::CLSIDFromProgID(L"Xproer.HttpPartition6.1", &clsid);
if (!SUCCEEDED(hr))
{
MessageBoxW(L"创建组件失败,请先安装或注册组件", L"错误", MB_OK);
return 0;
}
CComPtr < IUnknown > spUnk;
hr = ::CoCreateInstance(clsid, NULL, CLSCTX_ALL, IID_IUnknown, (LPVOID *)&spUnk);
CComDispatchDriver up6 = spUnk;
//创建事件接收器
auto ent = std::make_shared<up6Event>();
ent->DispEventAdvise(spUnk);
CComVariant version;
up6.GetPropertyByName(L"Version", &version);
std::wstring js = L"{"name":"open_files"}";
CComVariant v1(js.c_str());
CComVariant ret;
hr = up6.Invoke1(
L"postMessage",
&v1,
&ret);
ent->DispEventUnadvise(spUnk);
return 0;
}
运行

点击选择文件按钮,选择文件

触发事件,显示选择结果
