文档中心 ›up6 ›开发 ›接口

C++

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

相关资料:解决方案,白皮书,产品介绍,产品比较,开发文档,成功案例,产品源代码,授权码工具,个人版价格,企业版价格,政企版价格,年费版价格,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;

}

 

运行

 

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

 

 

触发事件,显示选择结果

 

上一篇 asp.net
下一篇 介绍
微信
微信二维码

微信 · 全经理

QQ
QQ客服二维码

QQ:1085617561