文档中心 up6 开发 接口

C++

接口发布于 2022-12-06更新于 2026-06-11 18:14

相关资料:解决方案白皮书产品介绍产品比较开发文档成功案例产品源代码授权码工具个人版价格企业版价格政企版价格年费版价格OEM版价格源码版价格基础组件示例下载控件升级在线演示在线文档并发能力上传速度下载速度Windows控件安装macOS控件安装deb控件安装rpm控件安装安装引导控件部署控件升级IE9加载控件IE8加载控件

示例下载:asp.net-vs2013asp.net-vs2010jsp-eclipsejsp-springbootjsp-myeclipsephpvue-cilWinForm(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)NativeMessagemacOSLinux(海光,兆芯)arm(鲲鹏,飞腾)龙芯mips龙芯LoongArch

ASP.NET教程:asp.netIIS ExpressIISIIS-HttpsOracleminiofastdfs阿里云对象存储(oss)华为云对象存储(obs)
jsp-eclipse教程:测试教程oraclemysqlSQL Serverminiofastdfs阿里云对象存储(oss)华为云对象存储(obs)

jsp-springboot教程:测试教程miniofastdfs阿里云对象存储(oss)华为云对象存储(obs)

jsp-myeclipse教程:mysqloracleSQL Serverfastdfs

php教程:测试教程miniofastdfs阿里云对象存储(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;

}

 

运行

 

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

 

 

触发事件,显示选择结果

 

上一篇 asp.net
下一篇 介绍