...
 
Commits (2)
    https://gitcode.net/netsecsp/asynframe/-/commit/2fc4c8a2d567ea3441a4716069141c87781cca9f 1.5.0-20230808 2023-08-09T09:11:54+08:00 netsecsp netsecsp@hotmail.com https://gitcode.net/netsecsp/asynframe/-/commit/7dda06b975970e2049307409d68f4330afd2811c 1.5.0-20230808 2023-08-09T19:39:04+08:00 netsecsp netsecsp@hotmail.com
版本信息:1.5.0
变更日期:2023-08-08
变更描述:
1. 发布版本: 面向设计重构架构/接口
2. 修复已知问题
版本信息:1.4.6
变更日期:2023-03-31
变更描述:
......@@ -6,7 +12,6 @@
3. 调整接口定义
4. 修复已知问题
5. 修复内存泄露
6. 修复ipv6问题
版本信息:1.3.2
变更日期:2023-02-02
......@@ -30,7 +35,7 @@
版本信息:1.0.0
变更日期:2022-05-05
变更描述:
1. 公测版本: 面向产品重构架构/接口
1. 发布版本: 面向产品重构架构/接口
版本信息:0.2.0
变更日期:2015-05-28
......@@ -43,18 +48,19 @@
1. init
=========================================================
asyncore.dll: 1.4.4.4
asyncore.dll: 1.5.0.0
asynfile.dll: 1.0.0.0
asynipcs.dll: 1.0.0.0
asynneta.dll: 1.0.2.1
asynsock.dll: 1.0.1.1
asynsock.dll: 1.0.2.2
console.dll: 1.0.3.3
crashexplorer.dll: 1.1.1.2
dns.dll: 1.0.1.0
dtp.dll: 1.0.1.1
dns.dll: 1.0.2.2
dtp.dll: 1.0.2.2
ras.dll: 1.0.0.0
ftp.dll: 1.0.1.0
http.dll: 1.0.1.0
rtsp.dll: 1.0.0.0
proxy.dll: 1.0.1.0
websocket.dll: 1.0.1.0
ssl.dll: 1.0.0.0
......
Copyright (c) 2012 - 2032, All rights reserved.
Author: Shengqian Yang, China, last updated 05/05/2022
Author: Shengqian Yang, China, last updated 08/07/2023
Email : netsecsp@hotmail.com
Redistribution and use in source and binary forms, with or without
......
## Asynframe framework v1.4.6 [english](/README_EN.md) | 中文
## Asynframe framework v1.5.0 [english](/README_EN.md) | 中文
> https://github.com/netsecsp/asynframe
# 项目背景
......@@ -62,20 +62,18 @@ asynframe framework解决上面所提的软件产品开发过程中的六大问
|sqlite|插件|基于sqlite-3.3.20实现IOsComman接口|\support\testframe|
# 变更记录
> 2023/08/08 发布windows平台的asynframe framework v1.5.0
1. 发布版本: 面向设计重构架构/接口
2. 修复已知问题
> 2023/03/31 发布windows平台的asynframe framework v1.4.6
1. 发布插件: dtp/ras
2. asynneta 支持tcp/udp端口转发
3. 调整接口定义
4. 修复已知问题
5. 修复内存泄露
> 2023/02/02 发布windows平台的asynframe framework v1.3.2
> 2022/06/08 发布windows平台的asynframe framework v1.2.0
> 2022/05/26 发布windows平台的asynframe framework v1.1.0
> 2022/05/05 发布windows平台的asynframe framework v1.0.0
# 编译环境
> sdk_v1.4.6-Msvc2019_20230331.zip是通过Microsoft Visual Studio 2019编译的SDK
> sdk_v1.4.6-Msvc2013_20230331.zip是通过Microsoft Visual Studio 2013编译的SDK
> sdk_v1.5.0-Msvc2019_20230808.zip是通过Microsoft Visual Studio 2019编译的SDK
> sdk_v1.5.0-Msvc2013_20230808.zip是通过Microsoft Visual Studio 2013编译的SDK
1. 需在工程里设置asynframe相应的include/lib路径
2. 根据工程的运行库选择链接asynframe相应的asynsdk_mini-[MD/MDd/MT/MTd].lib
......
## Asynframe framework v1.4.6 english | [中文](/README.md)
## Asynframe framework v1.5.0 english | [中文](/README.md)
> https://github.com/netsecsp/asynframe
# Background
......@@ -62,19 +62,18 @@ Asynframe framework solves the six problems mentioned above in the process of so
|sqlite|plugin|Implementation of IOsCommand interface based on sqlite-3.3.20|\support\testframe|
# Change log
> 2023/08/08 Release asynframe framework v1.5.0
1. Release version: Design oriented refactoring architecture/interface
2. Fix known problems
> 2023/03/31 Release asynframe framework v1.4.6
1. Publish plugin: dtp/ras
2. Adjust interface definition
3. Fix known problems
4. Fix memory leak
> 2023/02/02 Release asynframe framework v1.3.2
> 2022/06/08 Release asynframe framework v1.2.0
> 2022/05/26 Release asynframe framework v1.1.0
> 2022/05/05 Release asynframe framework v1.0.0
# Build
> sdk_v1.4.6-Msvc2019_20230331.zip is compiled through Microsoft Visual Studio 2019
> sdk_v1.4.6-Msvc2013_20230331.zip is compiled through Microsoft Visual Studio 2013
> sdk_v1.5.0-Msvc2019_20230808.zip is compiled through Microsoft Visual Studio 2019
> sdk_v1.5.0-Msvc2013_20230808.zip is compiled through Microsoft Visual Studio 2013
1. The include / lib path corresponding to asynframe needs to be set in the project
2. Select and link the corresponding asynsdk of asynframe according to the runtime of the asynsdk_mini-[MD/MDd/MT/MTd].lib
......
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
无法预览此类型文件
......@@ -36,9 +36,9 @@ import "ITypedef.idl";
interface ISpeedController;
interface IMemoryPool;
interface IThreadPool;
interface IThread;
interface IOsTime;
interface IBuffer;
interface IThread;
interface IAsynIoOperationFactory;
interface IAsynIoOperation;
......@@ -60,7 +60,6 @@ import "ITypedef.idl";
cpp_quote( "#define AF_IOMSG_NOTIFY ( 5 )" ) //AF_IOMSG_NOTIFY X lAction IAsynIoOperation
cpp_quote( "#define AF_EVENT_NOTIFY ( 6 )" ) //AF_EVENT_NOTIFY pObject X X
cpp_quote( "#define AF_QUERY_RESULT ( 7 )" ) //AF_QUERY_RESULT pObject X X
cpp_quote( "#define AF_CTASK_NOTIFY ( 8 )" ) //AF_CTASK_NOTIFY pObject X X
/////////////////////////////////////////////////////////////////////////////////
//应用消息: 最小值是10000
cpp_quote( "#define AF_EVENT_APPID1 (10000)" )
......@@ -69,8 +68,8 @@ import "ITypedef.idl";
cpp_quote( "#define AF_EVENT_APPID4 (10003)" )
/////////////////////////////////////////////////////////////////////////////////
//错误代码
cpp_quote( "#define AE_RESET ( 1 )" ) //IO复位: 对于文件读请求来说表示已到文件结尾/对于网络读请求来说表示已经收到0字节,即:收到fin报文
cpp_quote( "#define AE_RESET ( 1 )" ) //1.IO复位: 对于文件读请求来说表示已到文件结尾/对于网络TCP读请求来说表示已经收到0字节,即:收到fin报文
//2.dtp.UDP丢弃
/////////////////////////////////////////////////////////////////////////////////
[// 获取/设置Object接口
object,
......@@ -80,8 +79,8 @@ import "ITypedef.idl";
]
interface IObjectHolder : IUnknown
{
HRESULT Get( [in ]uint32_t method, [in ]uint32_t lparam, [in ]REFIID riid, [out, iid_is(riid)]void** ppObject );
HRESULT Set( [in ]uint32_t method, [in ]uint32_t lparam, [in ]IUnknown* pObject );
HRESULT Get( [in ]uint32_t method, [in ]uint32_t lparam2, [in ]REFIID riid, [out, iid_is(riid)]void** ppObject );
HRESULT Set( [in ]uint32_t method, [in ]uint32_t lparam2, [in ]IUnknown* pObject );
};
/////////////////////////////////////////////////////////////////////////////////
......@@ -142,10 +141,10 @@ import "ITypedef.idl";
]
interface IAsynMessageObject : IUnknown
{
HRESULT Attach( [in ]IUnknown* observer, [in ]STRING* subject );
HRESULT Attach( [in ]IUnknown* observer, [in ]uint64_t subject );
HRESULT Detach( [in ]IUnknown* observer );
/////////////////////////////////////////////////////////////////////////////
HRESULT Notify( [in ]STRING* subject, [in ]uint32_t message, [in ]uint64_t lparam1, [in ]uint64_t lparam2, [in, out]IUnknown** object );
HRESULT Notify( [in ]STRING* subject, [in ]uint32_t message, [in ]uint64_t lparam1, [in ]uint64_t lparam2, [in ]IUnknown* object );
};
/////////////////////////////////////////////////////////////////////////////////
......@@ -157,18 +156,18 @@ import "ITypedef.idl";
]
interface IThreadMessagePump : IUnknown
{
//等待消息:阻塞nTimeout直到收到消息,允许nTimeout=0,单位:微秒, 参数unused必须等于0
//等待消息:阻塞nTimeout直到收到消息,允许nTimeout=0,单位:微秒, 参数events必须等于0
//返 回 值:S_OK -表示成功提取消息
// S_FALSE-表示在等待时间里没有消息或发生中断事件
// E_ABORT-表示退出消息循环
HRESULT WaitMessage( [in ]handle unused, [in ]uint64_t nTimeout );
HRESULT WaitMessage( [in ]handle events, [in ]uint64_t nTimeout );
//分发消息: 若异步消息=iop时,则返回S_OK
HRESULT PumpMessage( [in ]handle iodata );
HRESULT PumpMessage( [in ]handle pdatas );
/////////////////////////////////////////////////////////////////////////////
//查询状态
//返 回 值:S_OK -表示正常运行
// S_FALSE-表示退出, 即: WaitMessage返回E_ABORT后状态
HRESULT QueryStatus();
HRESULT QueryStatus( );
};
[// 工作线程接口
......@@ -263,7 +262,7 @@ import "ITypedef.idl";
//查询状态
//返 回 值:S_OK -表示空闲
// S_FALSE-表示使用
// E_ABORT-表示取消
// E_ABORT-表示废弃
HRESULT QueryStatus();
/////////////////////////////////////////////////////////////////////////////
......@@ -333,7 +332,7 @@ import "ITypedef.idl";
interface IAsynIoOperationFactory : IUnknown
{
//注意参数:param2必须等于0
HRESULT CreateAsynIoOperation( [in ]IAsynFrame* pAsynFrame, [in ]uint32_t param1/*具体模块定义*/, [in ]uint32_t param2, [in ]REFIID riid, [out, iid_is(riid)]void** ppObject );
HRESULT CreateAsynIoOperation( [in ]IAsynFrame* frame, [in ]uint32_t param1/*具体模块定义*/, [in ]uint32_t param2, [in ]REFIID riid, [out, iid_is(riid)]void** ppObject );
};
[// 提供数据传输链接口
......@@ -359,6 +358,20 @@ import "ITypedef.idl";
HRESULT Write( [in ]IAsynIoOperation* pAsynIoOperation, [in ]uint64_t reserved/*具体模块定义,一般为零*/ );
};
[// 提供数据内容的接口: dns/dlna/bonjour
object,
uuid(BC3598EB-758F-4363-BA80-E7263934CD9D),
helpstring("IDataProvider Interface"),
pointer_default(unique)
]
interface IDataProvider : IUnknown
{
//查询数据, 若object是IAsynMessageEvents, 则查询结果事件: AF_QUERY_RESULT self param2 result
HRESULT Queryres( [in ]IUnknown* pdatas, [in ]uint64_t param2, [in ]IUnknown* object );
//通告数据
HRESULT Announce( [in ]IUnknown* pdatas, [in ]uint32_t action );
};
[// 显式继承:IObjectHolder,隐含继承:IDataTransmit/IDataRwInvoke
object,
uuid(CBFDC32B-6AC7-4dd6-BB9D-E8248366249A),
......@@ -458,7 +471,7 @@ import "ITypedef.idl";
/////////////////////////////////////////////////////////////////////////////
//加入/弹出空闲池操作
HRESULT Add( [in ]IAsynIoOperation* lpAsynIoOperation, [in ]uint32_t lparam2 );
HRESULT Pop( [in ]uint32_t lparam1, [out]IAsynIoOperation** ppAsynIoOperation );
HRESULT Pop( [in ]uint32_t lparam2, [out]IAsynIoOperation** ppAsynIoOperation ); //触发事件:AF_QUERY_RESULT IAsynFrame lparam2 ppAsynIoOperation
/////////////////////////////////////////////////////////////////////////////
//主动释放内部资源: IAsynFrame对象内部数据已被销毁
......@@ -478,11 +491,8 @@ import "ITypedef.idl";
HRESULT InThread( [in ]uint32_t threadid );
/////////////////////////////////////////////////////////////////////////////
//同步调度,pOwner支持类型: IStringSetter/IAsynMessageEvents, 可以被pSrcAsynIoOperation取消
HRESULT Dispatch( [in ]IAsynIoOperation* pSrcAsynIoOperation, [in ]IUnknown* pOwner, [in ]uint32_t message, [in ]uint64_t lparam1, [in ]uint64_t lparam2, [in ]IUnknown* object );
/////////////////////////////////////////////////////////////////////////////
//投递任务,pOwner支持类型: IStringSetter/IAsynMessageEvents, 无法被取消, 触发事件: AF_CTASK_NOTIFY lpTask lparam2 object
HRESULT PostTask( [in ]IUnknown* pOwner, [in ]IUnknown** pParam1, [in ]uint64_t lparam2, [in ]IUnknown* object, [out]IUnknown** ppTask );
//同步调度,message>=AF_IOMSG_NOTIFY, 可以被pSrcAsynIoOperation取消
HRESULT Dispatch( [in ]IAsynIoOperation* pSrcAsynIoOperation, [in ]IAsynMessageEvents* events, [in ]uint32_t message, [in ]uint64_t lparam1, [in ]uint64_t lparam2, [in ]IUnknown* object );
/////////////////////////////////////////////////////////////////////////////
HRESULT SendAsynIoOperation( [in ]IAsynIoOperation* pDstAsynIoOperation );
......@@ -510,13 +520,13 @@ import "ITypedef.idl";
};
/////////////////////////////////////////////////////////////////////////////////
[// 单一实例,实例管理器,显式继承:IAsynMessageEvents, 隐含继承: IAsynMessageObject, 提供注册/注销接收创建实例事件功能
[// 单一实例,实例管理器,显式继承: IAsynMessageObject, 提供注册/注销接收创建实例事件功能
object,
uuid(AB2CD54D-2BCB-41c8-9757-99B43F202024),
helpstring("InstancesManager Interface"),
pointer_default(unique)
]
interface InstancesManager : IAsynMessageEvents
interface InstancesManager : IAsynMessageObject
{
//通过riid创建实例: 已经实现以下的接口
// 1、ISpeedController
......@@ -534,8 +544,12 @@ import "ITypedef.idl";
HRESULT Require( [in ]STRING Owner );
///////////////////////////////////////////////////////////////
//监控组件:可选实现DllCanUnloadNow接口
HRESULT Observe( [in ]handle Soctx );
//Ident允许nil, 格式: depend/owner, 可选实现DllCanUnloadNow接口
HRESULT Observe( [in ]STRING Ident, [in ]handle Soctx );
///////////////////////////////////////////////////////////////
//执行任务
HRESULT Execute( [in ]STRING Owner, [in ]IUnknown* pParam1, [in ]STRING lparam2, [in ]IUnknown* object );
};
/////////////////////////////////////////////////////////////////////////////////
......
......@@ -58,7 +58,7 @@ import "IAsynFrame.idl";
HRESULT GetPeerAddress( [in ]IStringSetter* Host, [out]BYTE* Addr, [out]PORT* Port, [out]uint32_t* af );
HRESULT SetPeerAddress( [in ]BOOL Multi, [in ]STRING* Host, [in ]BYTE* Addr, [in ]PORT Port, [in ]uint32_t af );
/////////////////////////////////////////////////////////////////////////
//获取/设置域名, checkipx=1用于检查Host是否是Addr
//获取/设置域名, checkipx=1用于检查Host是否是Address
HRESULT GetHost( [out]STRING* Host );
HRESULT SetHost( [in ]STRING Host, [in ]BOOL checkipx );
//获取/设置端口
......@@ -66,19 +66,16 @@ import "IAsynFrame.idl";
HRESULT SetPort( [in ]PORT Port );
};
[// 隐式继承:IObjectHolder/IDataTransmit,用于获取内部IDnsHostZone/IAsynDnsResolver,
[// 隐式继承:IObjectHolder,用于获取内部IDnsHostZone/IAsynDnsResolver,
object,
uuid(13C32332-EED4-4701-8644-C2F6E3CCBFE6),
helpstring("IAsynDnsResolver Interface"),
pointer_default(unique)
]
interface IAsynDnsResolver : IUnknown
interface IAsynDnsResolver : IDataProvider
{
//设置域名服务器地址,第一个地址为主Dns服务器
HRESULT SetDnsServer( [in ]STRING svc, [in, size_is(sizeof(STRING)*Count)]STRING* pHostport, [in ]uint32_t Count );
/////////////////////////////////////////////////////////////////////////
//提交解析请求,注意:调用之前必须通过IAsynIoOperation.SetHost设置域名,
HRESULT Commit( [in ]IUnknown* data, [in ]uint32_t af );
};
/////////////////////////////////////////////////////////////////////////////
......@@ -140,8 +137,8 @@ import "IAsynFrame.idl";
{
HRESULT Open( [in ]IAsynFrameThread* pAsynFrameThread, [in ]uint32_t af, [in ]uint32_t type, [in ]uint32_t protocol, [in ]uint32_t nttl, [in ]BOOL loop );
/////////////////////////////////////////////////////////////////////////
HRESULT Add( [in ]STRING IHost, [in ]STRING MHost );
HRESULT Pop( [in ]STRING IHost, [in ]STRING MHost );
HRESULT Join( [in ]STRING IHost, [in ]STRING MHost ); //加入多播组
HRESULT Drop( [in ]STRING IHost, [in ]STRING MHost );
};
[// 提供Tcp.SOCKET
......@@ -197,7 +194,7 @@ import "IAsynFrame.idl";
};
/////////////////////////////////////////////////////////////////////////////
[// 提供应用服务
[// 提供服务接口
object,
uuid(DFDD78F9-309A-4bb9-97D0-161969B9D192),
helpstring("IAppService Interface"),
......@@ -205,7 +202,7 @@ import "IAsynFrame.idl";
]
interface IAppService : IUnknown
{
HRESULT Control( [in ]uint32_t action ); //action=0:stop action=1:start/play action=2:pause
HRESULT Control( [in ]uint32_t action ); //action=0:stop action=1:start|play action=2:pause
};
/////////////////////////////////////////////////////////////////////////////
......@@ -218,18 +215,19 @@ import "IAsynFrame.idl";
interface IAsynNetwork : IAsynIoOperationFactory
{
//创建异步域名解析器
HRESULT CreateAsynDnsResolver( [in ]STRING Owner, [in ]IUnknown** param1, [in ]STRING param2, [in ]STRING* etchost, [out]IAsynDnsResolver** ppAsynDnsResolver );
HRESULT CreateAsynDnsResolver( [in ]STRING Owner, [in ]STRING* etchosts, [in ]IUnknown* param1, [in ]STRING param2, [out]IAsynDnsResolver** ppAsynDnsResolver );
/////////////////////////////////////////////////////////////////////////
HRESULT CreateAsynRawSocket( [in ]uint32_t lType/*默认等于0, 1:icmp*/, [out]IAsynRawSocket** ppAsynRawSocket );
HRESULT CreateAsynUdpSocket( [out]IAsynUdpSocket** ppAsynUdpSocket );
HRESULT CreateAsynTcpSocket( [out]IAsynTcpSocket** ppAsynTcpSocket );
//参数unused只能是IStringSetter/IAsynDtpSocketListener
HRESULT CreateAsynTcpSocketListener( [in ]IUnknown* unused, [out]IAsynTcpSocketListener** ppAsynTcpSocketListener );
//创建IAsynRawSocket:建立Socket链, param1传IAsynRawSocket数组
HRESULT CreateAsynPtlSocket( [in ]STRING Owner, [in ]IUnknown** param1, [in ]STRING param2, [out]IAsynRawSocket** ppAsynRawSocket );
/////////////////////////////////////////////////////////////////////////
//创建IAsynRawSocket:建立Socket链
HRESULT CreateAsynPtlSocket( [in ]STRING Owner, [in ]IAsynRawSocket* socket, [in ]IUnknown* param1, [in ]STRING param2, [out]IAsynRawSocket** ppAsynRawSocket );
/////////////////////////////////////////////////////////////////////////
//创建应用服务
HRESULT CreateAppService( [in ]STRING Owner, [in ]IUnknown** param1, [in ]STRING param2, [in ]IAsynMessageEvents* events, [out]IAppService** ppAppService );
HRESULT CreateAppService( [in ]STRING Owner, [in ]IUnknown* object, [in ]IKeyvalSetter* param1, [in ]STRING param2, [out]IAppService** ppAppService );
/////////////////////////////////////////////////////////////////////////
//获得本地地址,iaf=AF_INET获取ipv4列表/iaf=AF_INET6获取ipv6列表/iaf=0获取ipv4+ipv6列表
HRESULT EnumLocalAddress( [in ]uint32_t iaf, [in ]IStringVector* output );
......
......@@ -43,7 +43,7 @@ import "IAsynNetwork.idl";
interface IDtpService : IAppService
{
//pOwner支持类型: IStringSetter/IAsynMessageEvents, position代表位置,0表示队尾, ppObject返回类型:IAsynDtpSocketListener/IAsynUdpSocket
HRESULT CreateAsynDtpSocketLayer( [in ]IUnknown* pOwner, [in ]IUnknown** param1, [in ]STRING param2, [in ]uint32_t position, [out]IUnknown** ppObject );
HRESULT CreateAsynDtpSocketLayer( [in ]IUnknown* pOwner, [in ]uint32_t position, [in ]IUnknown* param1, [in ]STRING param2, [out]IUnknown** ppObject );
};
cpp_quote("#pragma pack(pop)")
\ No newline at end of file
......@@ -34,7 +34,7 @@ import "IAsynFrame.idl";
cpp_quote("#pragma pack(push, 1)")
/////////////////////////////////////////////////////////////////////////////
[
[// Òì³£²¶»ñÆ÷
object,
uuid(1F4C098C-5615-4623-8EB0-64A012DC7DB4),
helpstring("IExceptionTrapper Interface"),
......
......@@ -47,7 +47,7 @@ import "IAsynNetwork.idl";
};
/////////////////////////////////////////////////////////////////////////////
[// 提供消息/数据分离的接口
[// 提供消息数据分离的接口
object,
uuid(DCA84EA9-CC7F-4d6a-B7E5-7FD443F83BC1),
helpstring("INet Interface"),
......@@ -59,7 +59,7 @@ import "IAsynNetwork.idl";
};
/////////////////////////////////////////////////////////////////////////////
[// 提供Http数据传输隧道的接口
[// 提供数据传输隧道的接口
object,
uuid(DFFEA42D-B431-4C7B-876C-D545A4A58EC9),
helpstring("IHttpTxTunnel Interface"),
......
......@@ -107,8 +107,8 @@ END_ASYN_IOERROR()
/////////////////////////////////////////////////////////////////////////////////
//AF_IOMSG_NOTIFY.Action
#define Io_recv ( 0)
#define Io_send ( 1)
#define Io_recv ( 0 )
#define Io_send ( 1 )
#define Io_acceptd ( 16)
#define Io_connect ( 17)
#define Io_bind ( 18)
......@@ -117,12 +117,12 @@ END_ASYN_IOERROR()
#define Io_flushfile ( 21)
/////////////////////////////////////////////////////////////////////////////////
//ISpeedController.IObjectHolder(lType)
//ISpeedController.IObjectHolder(method)
#define CT_SetAppSpeedController ( 0 ) //获取/设置内部的ISpeedController
#define CT_GetAppSpeedController ( 0 )
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoOperation.IObjectHolder(lType)
//IAsynIoOperation.IObjectHolder(method)
#define OT_SetAsynIoOperation ( 0 ) //设置顶级IAsynIoOperation
#define OT_TakeBindIoOperation ( 0 ) //获取绑定IAsynIoOperation
......@@ -135,17 +135,38 @@ END_ASYN_IOERROR()
#define OT_GetAppAsynFrame ( 4 ) //获取内部IAsynFrame
//IAsynIoOperation.GetOsBuffer(index)
#define OB_OsOverlapped ( 0 ) //Overlapped
#define OB_OsAddr ( 1 ) //OsAddr
#define OB_IoArea ( 2 ) //IoArea
/////////////////////////////////////////////////////////////////////////////////
////IAsynFrame.IObjectHolder(lType)
//IAsynFrame.IObjectHolder(method)
#define FT_GetOsMempool ( 0 ) //获取内部IOsMempool
#define FT_SetOsMempool ( 0 ) //设置内部IOsMempool
////IAsynFrame.Add/Pop
#define FF_Resetio ( 1 ) //复位/确保有效iobuffer
#define FF_Resetaf ( 2 ) //复位/确保有效地址
//IAsynFrame.Add(lparam2)
#define FF_Resetio ( 1 ) //复位iobuffer
#define FF_Resetaf ( 2 ) //复位地址
#define FF_Resetpb ( 4 )
//IAsynIoOperationFactory.CreateAsynIoOperation(param2)
//IAsynFrame.Pop(lparam2)
#define FF_Allocio ( 1 ) //确保iobuffer
#define FF_Allocaf ( 2 ) //确保地址
#define FF_Noreuse ( 4 ) //一次性io
#define FF_Notpost ( 8 ) //不做post
#define FF_Nodelay ( 16) //不延迟io
/////////////////////////////////////////////////////////////////////////////////
//global of events.Notify.lparam1{AF_QUERY_RESULT/AF_EVENT_NOTIFY, IKeyval}
#define EN_SystemEvent ( 0 )
//InstancesManager.Attach.lparam1
#define EN_FrameThread ( 1 ) //AF_EVENT_NOTIFY 1 x IAsynFrameThread
#define EN_NetworkAdpaterChanged ( 2 ) //AF_EVENT_NOTIFY 2 x IKeyval
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoDevice.IObjectHolder(lType)
//IAsynIoDevice.IObjectHolder(method)
#define DT_SetRecvSpeedController ( 0 ) //设置内部的接收IWinsSpeedController
#define DT_GetRecvSpeedController ( 0 ) //获取内部的接收IWinsSpeedController
#define DT_SetSendSpeedController ( 1 ) //设置内部的发送IWinsSpeedController
......@@ -153,48 +174,35 @@ END_ASYN_IOERROR()
#define DT_SetAppRecvSpeedController ( 2 ) //设置内部的接收ISpeedController
#define DT_SetAppSendSpeedController ( 3 ) //设置内部的发送ISpeedController
#define DT_GetAppAsynFrame ( 4 )
#define DT_GetAppAsynFrame ( 4 ) //获取内部IAsynFrame
#define DT_GetAsynIoDevice ( 5 ) //获取内部IAsynIoDevice
#define DT_GetAsynIoOperationFactory ( 6 ) //获取内部IAsynIoOperationFactory
#define DT_GetAsynFrameThread ( 7 ) //获取内部IAsynFrameThread[第一个]
#define DT_SetThreadpool ( 8 ) //设置内部线程池, 注意: 只有IAsynTcpSocketListener有效
#define DT_SetAsynDnsResolver ( 9 ) //获取内部的IAsynDnsResolver
#define DT_GetAsynDnsResolver ( 9 )
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoBridge.IObjectHolder(lType)
#define BT_GetSource ( 0 ) //获取源IAsynIoDevice
#define BT_GetTarget ( 1 )
#define BT_GetSourceIoOperation ( 2 ) //获取读IAsynIoOperation
#define BT_GetTargetIoOperation ( 3 ) //获取写IAsynIoOperation
#define DT_SetThreadpool ( 8 ) //设置内部线程池, 注意: 目前只对IAsynTcpSocketListener有效
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoOperationFactory.CreateAsynIoOperation(lType)
#define BT_SharedMemoryBuffer ( 1 ) //共享内存
#define DT_SetAsynDnsResolver ( 9 ) //获取内部的IAsynDnsResolver
#define DT_GetAsynDnsResolver ( 9 )
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoDevice.Attach(lType)
//IAsynIoDevice.Attach(lAttachType)
#define DA_PortHandle ( 0 ) //主动激活句柄
#define DA_PasvHandle ( 1 ) //被动激活句柄
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoDevice.IsOpened(pDeviceName)
#define DN_File ("file" ) //文件
#define DN_Pipe ("pipe" ) //管道
#define DN_Device ("device" ) //设备
#define DN_Socket ("socket" ) //套接字
#define DN_Icmp ("icmp" ) //icmp
#define DN_Filter ("filter" ) //过滤器
#define DN_Socket ("socket" ) //套接字
#define DN_Tunnel ("tunnel" ) //隧道
/////////////////////////////////////////////////////////////////////////////////
//IAsynFrameThread.BindAsynIoOperation(lMode):以下值可以自由组合
//IAsynFrameThread.BindAsynIoOperation(mode):以下值可以自由组合
#define BM_Oneway (0x00000001) //单向关联:1-只能允许front.cancel事件传递/0-允许front.cancel/self事件传递, 不能跟BM_Result|BM_Calcio|BM_Onlyec联合使用
#define BM_ExBuff (0x00000002) //间接引用数据Buffer, SetExtraBuffer(-1, Buffer), 不能跟BM_IoBuff联合使用
#define BM_Result (0x00000004) //拷贝:Result/errors
......@@ -209,10 +217,15 @@ END_ASYN_IOERROR()
#define BM_ResetOptimer (0x80000000) //移除Op定时器
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoOperation.GetOsBuffer(index)
#define OB_OsOverlapped ( 0 ) //Overlapped
#define OB_OsAddr ( 1 ) //OsAddr
#define OB_IoArea ( 2 ) //IoArea
//IAsynIoBridge.IObjectHolder(method)
#define BT_GetSource ( 0 ) //获取源IAsynIoDevice
#define BT_GetTarget ( 1 )
#define BT_GetSourceIoOperation ( 2 ) //获取读IAsynIoOperation
#define BT_GetTargetIoOperation ( 3 ) //获取写IAsynIoOperation
/////////////////////////////////////////////////////////////////////////////////
//IAsynIoOperationFactory.CreateAsynIoOperation(lparam1)
#define BT_SharedMemoryBuffer ( 1 ) //共享内存
#pragma pack(push, 1)
/////////////////////////////////////////////////////////////////////////////////
......
......@@ -51,28 +51,36 @@ BEGIN_ASYN_IOERROR(IAsynNetwork)
END_ASYN_IOERROR()
/////////////////////////////////////////////////////////////////////////////////
//IAsynDnsResolver.IObjectHolder(lType)
#define DT_GetDnsHostZone ( 1 ) //获取IAsynDnsResolver内部IDnsHostZone
//IAsynNetwork.IObjectHolder(lType)
#define DT_GetAsynTcplinkManager (100) //获取内部的IAsynTcplinkManager
#define DT_SetmDNSService (101) //设置/获取mDNS服务
#define DT_GetmDNSService (101)
/////////////////////////////////////////////////////////////////////////////////
//IAsynDnsResolver.IObjectHolder(lType)
#define DT_GetDnsHostZone ( 1 ) //获取IAsynDnsResolver内部IDnsHostZone
/////////////////////////////////////////////////////////////////////////////////
//IAppService.Control(action)
#define ST_GetState ( 3 ) //返回服务状态: 0-stopped 1-running 2-paused
#define ST_ActStop ( 0 )
#define ST_ActStart ( 1 )
#define ST_ActPause ( 2 )
#define ST_GetState ( 3 ) //返回服务状态: 0-stopped 1-running 2-paused
/////////////////////////////////////////////////////////////////////////////////
//SetSockopt/GetSockopt的定义level
#define EXT_SOCKET (0xffffffff)
/////////////////////////////////////////////////////////////////////////////////
//SetSockopt/GetSockopt的定义optname
#define NET_SNDIO ( 0 ) //是否同步发送UDP数据
#define NET_MTU ( 1 )
#define NET_WAN ( 2 ) //格式: port[2B]addr[4|16B]
///////////////////////////////////////////////////////////////////////////////
//检测是否ISsl
bool IsSslSocket(/*[in ]*/IUnknown *pSocket);
NAMESPACE_END(asynsdk)
#endif // !defined(AFX_ASYNNETWORK_INTERNAL_H__88966194_6F5D_4303_8670_7EAE695A32B3__INCLUDED_)
\ No newline at end of file
......@@ -45,6 +45,9 @@ NAMESPACE_BEGIN(asynsdk)
#define string_from_BUFFER(S, l) std::string((char*)(S), l)
#define STRING_from_string(s) asynsdk::STRING_EX(s)
#define STRING_from_buffer(S, l) asynsdk::STRING_EX((void*)(S), l)
#define STRING_from_object(S) asynsdk::STRING_EX((void*)(S), 0)
#define STRING_from_value(S) asynsdk::STRING_EX(&(S), sizeof(S))
template<typename T> T value_from_STRING(STRING *s) { return *((T*)s->ptr);}
/////////////////////////////////////////////////////////////////////////////////
struct STRING_EX : public STRING
......
......@@ -136,7 +136,7 @@ class CMemorySetter :
public CSingleThreadModelObject //CComObjectRootEx<CComSingleThreadModel>
{
public:
CMemorySetter(uint32_t dwRef = 0, const void *val = "", uint32_t len = 0)
CMemorySetter(uint32_t dwRef = 0, const void *val = 0, uint32_t len = 0)
: CSingleThreadModelObject(dwRef)
{
m_val.ptr = (unsigned char*)val;
......
......@@ -60,10 +60,6 @@ void TravelKeyvalSetter (/*[in ]*/IKeyvalSetter *object, /*[in ]*/IAsynMessag
//设置读||写速度限制器
bool SetSpeedController (/*[in ]*/IAsynIoDevice *lpDstAsynIoDevice, /*[in ]*/uint32_t type, /*[in ]*/uint32_t level, /*[in ]*/ISpeedController *pSpeedController);
///////////////////////////////////////////////////////////////////////////////
//检测是否ISsl
bool IsSslSocket (/*[in ]*/IUnknown *pSocket);
///////////////////////////////////////////////////////////////////////////////
//申请||释放内存
void *AcquireBuffer(/*[in ]*/IMemoryPool *lpMemorypool, /*[in, out]*/uint32_t *size);
......@@ -86,11 +82,11 @@ IThreadMessagePump *CreateThreadMessagePump(/*[in ]*/InstancesManager *lpInsta
///////////////////////////////////////////////////////////////////////////////
//创建数据传输器
IDataTransmit *CreateDataTransmit(/*[in ]*/InstancesManager *lpInstancesManager, /*[in ]*/const char *name, /*[in ]*/IUnknown *target, /*[in ]*/IUnknown *pParam1, /*[in ]*/uint64_t lparam2);
IDataTransmit *CreateDataTransmit(/*[in ]*/InstancesManager *lpInstancesManager, /*[in ]*/const char *name, /*[in ]*/IUnknown *pParam1, /*[in ]*/uint64_t lparam2);
///////////////////////////////////////////////////////////////////////////////
//创建命令执行器: name="cmd"表示创建系统命令执行器
IOsCommand *CreateCommand(/*[in ]*/InstancesManager *lpInstancesManager, /*[in ]*/const char *name, /*[in ]*/IUnknown *thread, /*[in ]*/IUnknown *pParam1, /*[in ]*/uint64_t lparam2);
IOsCommand *CreateCommand(/*[in ]*/InstancesManager *lpInstancesManager, /*[in ]*/const char *name, /*[in ]*/IUnknown *pParam1, /*[in ]*/uint64_t lparam2);
///////////////////////////////////////////////////////////////////////////////
typedef enum tag_ThreadType
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:14 2023
/* at Mon Aug 07 11:29:47 2023
*/
/* Compiler settings for IAsynFileSystem.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......@@ -145,14 +145,14 @@ EXTERN_C const IID IID_IAsynFileIoOperation;
HRESULT ( STDMETHODCALLTYPE *Get )(
IAsynFileIoOperation * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
IAsynFileIoOperation * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *GetAsynFrameThread )(
......@@ -309,11 +309,11 @@ EXTERN_C const IID IID_IAsynFileIoOperation;
( (This)->lpVtbl -> Release(This) )
#define IAsynFileIoOperation_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define IAsynFileIoOperation_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define IAsynFileIoOperation_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define IAsynFileIoOperation_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define IAsynFileIoOperation_GetAsynFrameThread(This,ppAsynFrameThread) \
......@@ -451,14 +451,14 @@ EXTERN_C const IID IID_IAsynRawDevice;
HRESULT ( STDMETHODCALLTYPE *Get )(
IAsynRawDevice * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
IAsynRawDevice * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *IsOpened )(
......@@ -539,11 +539,11 @@ EXTERN_C const IID IID_IAsynRawDevice;
( (This)->lpVtbl -> Release(This) )
#define IAsynRawDevice_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define IAsynRawDevice_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define IAsynRawDevice_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define IAsynRawDevice_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define IAsynRawDevice_IsOpened(This,pDeviceName) \
......@@ -637,14 +637,14 @@ EXTERN_C const IID IID_IAsynFile;
HRESULT ( STDMETHODCALLTYPE *Get )(
IAsynFile * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
IAsynFile * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *IsOpened )(
......@@ -738,11 +738,11 @@ EXTERN_C const IID IID_IAsynFile;
( (This)->lpVtbl -> Release(This) )
#define IAsynFile_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define IAsynFile_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define IAsynFile_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define IAsynFile_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define IAsynFile_IsOpened(This,pDeviceName) \
......@@ -930,7 +930,7 @@ EXTERN_C const IID IID_IAsynFileSystem;
HRESULT ( STDMETHODCALLTYPE *CreateAsynIoOperation )(
IAsynFileSystem * This,
/* [in] */ IAsynFrame *pAsynFrame,
/* [in] */ IAsynFrame *frame,
/* [in] */ uint32_t param1,
/* [in] */ uint32_t param2,
/* [in] */ REFIID riid,
......@@ -975,8 +975,8 @@ EXTERN_C const IID IID_IAsynFileSystem;
( (This)->lpVtbl -> Release(This) )
#define IAsynFileSystem_CreateAsynIoOperation(This,pAsynFrame,param1,param2,riid,ppObject) \
( (This)->lpVtbl -> CreateAsynIoOperation(This,pAsynFrame,param1,param2,riid,ppObject) )
#define IAsynFileSystem_CreateAsynIoOperation(This,frame,param1,param2,riid,ppObject) \
( (This)->lpVtbl -> CreateAsynIoOperation(This,frame,param1,param2,riid,ppObject) )
#define IAsynFileSystem_CreateAsynRawDevice(This,ppAsynRawDevice) \
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:14 2023
/* at Mon Aug 07 11:29:47 2023
*/
/* Compiler settings for IAsynFileSystem.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
此差异已折叠。
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:13 2023
/* at Mon Aug 07 11:29:46 2023
*/
/* Compiler settings for IAsynFrame.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......@@ -109,9 +109,15 @@ MIDL_DEFINE_GUID(IID, IID_IAsynIoOperationFactory,0x6655485B,0x7257,0x4e33,0x87,
MIDL_DEFINE_GUID(IID, IID_IDataTransmit,0x51DAEFEC,0x4B50,0x43C5,0xBE,0xB1,0x26,0x6F,0xD6,0x13,0x62,0xA3);
MIDL_DEFINE_GUID(IID, IID_IMediaStream,0xE517F055,0x9A00,0x4A00,0xA6,0x8F,0x67,0xC8,0x2B,0x5A,0x55,0xFD);
MIDL_DEFINE_GUID(IID, IID_IDataRwInvoke,0xCE91B4EF,0xB499,0x4778,0xAF,0x25,0x2D,0x33,0x58,0xDC,0x5B,0xA1);
MIDL_DEFINE_GUID(IID, IID_IDataProvider,0xBC3598EB,0x758F,0x4363,0xBA,0x80,0xE7,0x26,0x39,0x34,0xCD,0x9D);
MIDL_DEFINE_GUID(IID, IID_IAsynIoDevice,0xCBFDC32B,0x6AC7,0x4dd6,0xBB,0x9D,0xE8,0x24,0x83,0x66,0x24,0x9A);
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:15 2023
/* at Mon Aug 07 11:29:48 2023
*/
/* Compiler settings for IAsynIpcChannel.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......@@ -147,14 +147,14 @@ EXTERN_C const IID IID_IAsynIpcIoOperation;
HRESULT ( STDMETHODCALLTYPE *Get )(
IAsynIpcIoOperation * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
IAsynIpcIoOperation * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *GetAsynFrameThread )(
......@@ -313,11 +313,11 @@ EXTERN_C const IID IID_IAsynIpcIoOperation;
( (This)->lpVtbl -> Release(This) )
#define IAsynIpcIoOperation_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define IAsynIpcIoOperation_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define IAsynIpcIoOperation_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define IAsynIpcIoOperation_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define IAsynIpcIoOperation_GetAsynFrameThread(This,ppAsynFrameThread) \
......@@ -460,14 +460,14 @@ EXTERN_C const IID IID_IAsynNamedPipe;
HRESULT ( STDMETHODCALLTYPE *Get )(
IAsynNamedPipe * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
IAsynNamedPipe * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *IsOpened )(
......@@ -554,11 +554,11 @@ EXTERN_C const IID IID_IAsynNamedPipe;
( (This)->lpVtbl -> Release(This) )
#define IAsynNamedPipe_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define IAsynNamedPipe_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define IAsynNamedPipe_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define IAsynNamedPipe_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define IAsynNamedPipe_IsOpened(This,pDeviceName) \
......@@ -652,14 +652,14 @@ EXTERN_C const IID IID_IAsynIpcDevice;
HRESULT ( STDMETHODCALLTYPE *Get )(
IAsynIpcDevice * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
IAsynIpcDevice * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *IsOpened )(
......@@ -738,11 +738,11 @@ EXTERN_C const IID IID_IAsynIpcDevice;
( (This)->lpVtbl -> Release(This) )
#define IAsynIpcDevice_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define IAsynIpcDevice_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define IAsynIpcDevice_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define IAsynIpcDevice_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define IAsynIpcDevice_IsOpened(This,pDeviceName) \
......@@ -833,14 +833,14 @@ EXTERN_C const IID IID_IAsynIpcDeviceListener;
HRESULT ( STDMETHODCALLTYPE *Get )(
IAsynIpcDeviceListener * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
IAsynIpcDeviceListener * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *IsOpened )(
......@@ -920,11 +920,11 @@ EXTERN_C const IID IID_IAsynIpcDeviceListener;
( (This)->lpVtbl -> Release(This) )
#define IAsynIpcDeviceListener_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define IAsynIpcDeviceListener_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define IAsynIpcDeviceListener_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define IAsynIpcDeviceListener_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define IAsynIpcDeviceListener_IsOpened(This,pDeviceName) \
......@@ -1020,7 +1020,7 @@ EXTERN_C const IID IID_IAsynIpcChannel;
HRESULT ( STDMETHODCALLTYPE *CreateAsynIoOperation )(
IAsynIpcChannel * This,
/* [in] */ IAsynFrame *pAsynFrame,
/* [in] */ IAsynFrame *frame,
/* [in] */ uint32_t param1,
/* [in] */ uint32_t param2,
/* [in] */ REFIID riid,
......@@ -1062,8 +1062,8 @@ EXTERN_C const IID IID_IAsynIpcChannel;
( (This)->lpVtbl -> Release(This) )
#define IAsynIpcChannel_CreateAsynIoOperation(This,pAsynFrame,param1,param2,riid,ppObject) \
( (This)->lpVtbl -> CreateAsynIoOperation(This,pAsynFrame,param1,param2,riid,ppObject) )
#define IAsynIpcChannel_CreateAsynIoOperation(This,frame,param1,param2,riid,ppObject) \
( (This)->lpVtbl -> CreateAsynIoOperation(This,frame,param1,param2,riid,ppObject) )
#define IAsynIpcChannel_CreateAsynNamedPipe(This,ppAsynNamedPipe) \
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:15 2023
/* at Mon Aug 07 11:29:48 2023
*/
/* Compiler settings for IAsynIpcChannel.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:17 2023
/* at Mon Aug 07 11:29:50 2023
*/
/* Compiler settings for IAsynNetAgent.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:17 2023
/* at Mon Aug 07 11:29:50 2023
*/
/* Compiler settings for IAsynNetAgent.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:16 2023
/* at Mon Aug 07 11:29:49 2023
*/
/* Compiler settings for IAsynNetwork.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......@@ -223,14 +223,14 @@ EXTERN_C const IID IID_IAsynNetIoOperation;
HRESULT ( STDMETHODCALLTYPE *Get )(
IAsynNetIoOperation * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
IAsynNetIoOperation * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *GetAsynFrameThread )(
......@@ -411,11 +411,11 @@ EXTERN_C const IID IID_IAsynNetIoOperation;
( (This)->lpVtbl -> Release(This) )
#define IAsynNetIoOperation_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define IAsynNetIoOperation_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define IAsynNetIoOperation_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define IAsynNetIoOperation_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define IAsynNetIoOperation_GetAsynFrameThread(This,ppAsynFrameThread) \
......@@ -529,7 +529,7 @@ EXTERN_C const IID IID_IAsynDnsResolver;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("13C32332-EED4-4701-8644-C2F6E3CCBFE6")
IAsynDnsResolver : public IUnknown
IAsynDnsResolver : public IDataProvider
{
public:
virtual HRESULT STDMETHODCALLTYPE SetDnsServer(
......@@ -537,10 +537,6 @@ EXTERN_C const IID IID_IAsynDnsResolver;
/* [size_is][in] */ STRING *pHostport,
/* [in] */ uint32_t Count) = 0;
virtual HRESULT STDMETHODCALLTYPE Commit(
/* [in] */ IUnknown *data,
/* [in] */ uint32_t af) = 0;
};
......@@ -562,17 +558,23 @@ EXTERN_C const IID IID_IAsynDnsResolver;
ULONG ( STDMETHODCALLTYPE *Release )(
IAsynDnsResolver * This);
HRESULT ( STDMETHODCALLTYPE *Queryres )(
IAsynDnsResolver * This,
/* [in] */ IUnknown *pdatas,
/* [in] */ uint64_t param2,
/* [in] */ IUnknown *object);
HRESULT ( STDMETHODCALLTYPE *Announce )(
IAsynDnsResolver * This,
/* [in] */ IUnknown *pdatas,
/* [in] */ uint32_t action);
HRESULT ( STDMETHODCALLTYPE *SetDnsServer )(
IAsynDnsResolver * This,
/* [in] */ STRING svc,
/* [size_is][in] */ STRING *pHostport,
/* [in] */ uint32_t Count);
HRESULT ( STDMETHODCALLTYPE *Commit )(
IAsynDnsResolver * This,
/* [in] */ IUnknown *data,
/* [in] */ uint32_t af);
END_INTERFACE
} IAsynDnsResolverVtbl;
......@@ -596,12 +598,16 @@ EXTERN_C const IID IID_IAsynDnsResolver;
( (This)->lpVtbl -> Release(This) )
#define IAsynDnsResolver_Queryres(This,pdatas,param2,object) \
( (This)->lpVtbl -> Queryres(This,pdatas,param2,object) )
#define IAsynDnsResolver_Announce(This,pdatas,action) \
( (This)->lpVtbl -> Announce(This,pdatas,action) )
#define IAsynDnsResolver_SetDnsServer(This,svc,pHostport,Count) \
( (This)->lpVtbl -> SetDnsServer(This,svc,pHostport,Count) )
#define IAsynDnsResolver_Commit(This,data,af) \
( (This)->lpVtbl -> Commit(This,data,af) )
#endif /* COBJMACROS */
......@@ -766,14 +772,14 @@ EXTERN_C const IID IID_IAsynRawSocket;
HRESULT ( STDMETHODCALLTYPE *Get )(
IAsynRawSocket * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
IAsynRawSocket * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *IsOpened )(
......@@ -872,11 +878,11 @@ EXTERN_C const IID IID_IAsynRawSocket;
( (This)->lpVtbl -> Release(This) )
#define IAsynRawSocket_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define IAsynRawSocket_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define IAsynRawSocket_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define IAsynRawSocket_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define IAsynRawSocket_IsOpened(This,pDeviceName) \
......@@ -975,14 +981,14 @@ EXTERN_C const IID IID_IAsynUdpSocket;
HRESULT ( STDMETHODCALLTYPE *Get )(
IAsynUdpSocket * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
IAsynUdpSocket * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *IsOpened )(
......@@ -1088,11 +1094,11 @@ EXTERN_C const IID IID_IAsynUdpSocket;
( (This)->lpVtbl -> Release(This) )
#define IAsynUdpSocket_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define IAsynUdpSocket_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define IAsynUdpSocket_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define IAsynUdpSocket_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define IAsynUdpSocket_IsOpened(This,pDeviceName) \
......@@ -1173,11 +1179,11 @@ EXTERN_C const IID IID_IAsynGrpSocket;
/* [in] */ uint32_t nttl,
/* [in] */ BOOL loop) = 0;
virtual HRESULT STDMETHODCALLTYPE Add(
virtual HRESULT STDMETHODCALLTYPE Join(
/* [in] */ STRING IHost,
/* [in] */ STRING MHost) = 0;
virtual HRESULT STDMETHODCALLTYPE Pop(
virtual HRESULT STDMETHODCALLTYPE Drop(
/* [in] */ STRING IHost,
/* [in] */ STRING MHost) = 0;
......@@ -1211,12 +1217,12 @@ EXTERN_C const IID IID_IAsynGrpSocket;
/* [in] */ uint32_t nttl,
/* [in] */ BOOL loop);
HRESULT ( STDMETHODCALLTYPE *Add )(
HRESULT ( STDMETHODCALLTYPE *Join )(
IAsynGrpSocket * This,
/* [in] */ STRING IHost,
/* [in] */ STRING MHost);
HRESULT ( STDMETHODCALLTYPE *Pop )(
HRESULT ( STDMETHODCALLTYPE *Drop )(
IAsynGrpSocket * This,
/* [in] */ STRING IHost,
/* [in] */ STRING MHost);
......@@ -1247,11 +1253,11 @@ EXTERN_C const IID IID_IAsynGrpSocket;
#define IAsynGrpSocket_Open(This,pAsynFrameThread,af,type,protocol,nttl,loop) \
( (This)->lpVtbl -> Open(This,pAsynFrameThread,af,type,protocol,nttl,loop) )
#define IAsynGrpSocket_Add(This,IHost,MHost) \
( (This)->lpVtbl -> Add(This,IHost,MHost) )
#define IAsynGrpSocket_Join(This,IHost,MHost) \
( (This)->lpVtbl -> Join(This,IHost,MHost) )
#define IAsynGrpSocket_Pop(This,IHost,MHost) \
( (This)->lpVtbl -> Pop(This,IHost,MHost) )
#define IAsynGrpSocket_Drop(This,IHost,MHost) \
( (This)->lpVtbl -> Drop(This,IHost,MHost) )
#endif /* COBJMACROS */
......@@ -1310,14 +1316,14 @@ EXTERN_C const IID IID_IAsynTcpSocket;
HRESULT ( STDMETHODCALLTYPE *Get )(
IAsynTcpSocket * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
IAsynTcpSocket * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *IsOpened )(
......@@ -1424,11 +1430,11 @@ EXTERN_C const IID IID_IAsynTcpSocket;
( (This)->lpVtbl -> Release(This) )
#define IAsynTcpSocket_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define IAsynTcpSocket_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define IAsynTcpSocket_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define IAsynTcpSocket_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define IAsynTcpSocket_IsOpened(This,pDeviceName) \
......@@ -1532,14 +1538,14 @@ EXTERN_C const IID IID_IAsynMuxSocket;
HRESULT ( STDMETHODCALLTYPE *Get )(
IAsynMuxSocket * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
IAsynMuxSocket * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *IsOpened )(
......@@ -1655,11 +1661,11 @@ EXTERN_C const IID IID_IAsynMuxSocket;
( (This)->lpVtbl -> Release(This) )
#define IAsynMuxSocket_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define IAsynMuxSocket_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define IAsynMuxSocket_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define IAsynMuxSocket_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define IAsynMuxSocket_IsOpened(This,pDeviceName) \
......@@ -1864,14 +1870,14 @@ EXTERN_C const IID IID_IAsynTcpSocketListener;
HRESULT ( STDMETHODCALLTYPE *Get )(
IAsynTcpSocketListener * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
IAsynTcpSocketListener * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *IsOpened )(
......@@ -1981,11 +1987,11 @@ EXTERN_C const IID IID_IAsynTcpSocketListener;
( (This)->lpVtbl -> Release(This) )
#define IAsynTcpSocketListener_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define IAsynTcpSocketListener_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define IAsynTcpSocketListener_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define IAsynTcpSocketListener_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define IAsynTcpSocketListener_IsOpened(This,pDeviceName) \
......@@ -2143,9 +2149,9 @@ EXTERN_C const IID IID_IAsynNetwork;
public:
virtual HRESULT STDMETHODCALLTYPE CreateAsynDnsResolver(
/* [in] */ STRING Owner,
/* [in] */ IUnknown **param1,
/* [in] */ STRING *etchosts,
/* [in] */ IUnknown *param1,
/* [in] */ STRING param2,
/* [in] */ STRING *etchost,
/* [out] */ IAsynDnsResolver **ppAsynDnsResolver) = 0;
virtual HRESULT STDMETHODCALLTYPE CreateAsynRawSocket(
......@@ -2164,15 +2170,16 @@ EXTERN_C const IID IID_IAsynNetwork;
virtual HRESULT STDMETHODCALLTYPE CreateAsynPtlSocket(
/* [in] */ STRING Owner,
/* [in] */ IUnknown **param1,
/* [in] */ IAsynRawSocket *socket,
/* [in] */ IUnknown *param1,
/* [in] */ STRING param2,
/* [out] */ IAsynRawSocket **ppAsynRawSocket) = 0;
virtual HRESULT STDMETHODCALLTYPE CreateAppService(
/* [in] */ STRING Owner,
/* [in] */ IUnknown **param1,
/* [in] */ IUnknown *object,
/* [in] */ IKeyvalSetter *param1,
/* [in] */ STRING param2,
/* [in] */ IAsynMessageEvents *events,
/* [out] */ IAppService **ppAppService) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumLocalAddress(
......@@ -2202,7 +2209,7 @@ EXTERN_C const IID IID_IAsynNetwork;
HRESULT ( STDMETHODCALLTYPE *CreateAsynIoOperation )(
IAsynNetwork * This,
/* [in] */ IAsynFrame *pAsynFrame,
/* [in] */ IAsynFrame *frame,
/* [in] */ uint32_t param1,
/* [in] */ uint32_t param2,
/* [in] */ REFIID riid,
......@@ -2211,9 +2218,9 @@ EXTERN_C const IID IID_IAsynNetwork;
HRESULT ( STDMETHODCALLTYPE *CreateAsynDnsResolver )(
IAsynNetwork * This,
/* [in] */ STRING Owner,
/* [in] */ IUnknown **param1,
/* [in] */ STRING *etchosts,
/* [in] */ IUnknown *param1,
/* [in] */ STRING param2,
/* [in] */ STRING *etchost,
/* [out] */ IAsynDnsResolver **ppAsynDnsResolver);
HRESULT ( STDMETHODCALLTYPE *CreateAsynRawSocket )(
......@@ -2237,16 +2244,17 @@ EXTERN_C const IID IID_IAsynNetwork;
HRESULT ( STDMETHODCALLTYPE *CreateAsynPtlSocket )(
IAsynNetwork * This,
/* [in] */ STRING Owner,
/* [in] */ IUnknown **param1,
/* [in] */ IAsynRawSocket *socket,
/* [in] */ IUnknown *param1,
/* [in] */ STRING param2,
/* [out] */ IAsynRawSocket **ppAsynRawSocket);
HRESULT ( STDMETHODCALLTYPE *CreateAppService )(
IAsynNetwork * This,
/* [in] */ STRING Owner,
/* [in] */ IUnknown **param1,
/* [in] */ IUnknown *object,
/* [in] */ IKeyvalSetter *param1,
/* [in] */ STRING param2,
/* [in] */ IAsynMessageEvents *events,
/* [out] */ IAppService **ppAppService);
HRESULT ( STDMETHODCALLTYPE *EnumLocalAddress )(
......@@ -2277,12 +2285,12 @@ EXTERN_C const IID IID_IAsynNetwork;
( (This)->lpVtbl -> Release(This) )
#define IAsynNetwork_CreateAsynIoOperation(This,pAsynFrame,param1,param2,riid,ppObject) \
( (This)->lpVtbl -> CreateAsynIoOperation(This,pAsynFrame,param1,param2,riid,ppObject) )
#define IAsynNetwork_CreateAsynIoOperation(This,frame,param1,param2,riid,ppObject) \
( (This)->lpVtbl -> CreateAsynIoOperation(This,frame,param1,param2,riid,ppObject) )
#define IAsynNetwork_CreateAsynDnsResolver(This,Owner,param1,param2,etchost,ppAsynDnsResolver) \
( (This)->lpVtbl -> CreateAsynDnsResolver(This,Owner,param1,param2,etchost,ppAsynDnsResolver) )
#define IAsynNetwork_CreateAsynDnsResolver(This,Owner,etchosts,param1,param2,ppAsynDnsResolver) \
( (This)->lpVtbl -> CreateAsynDnsResolver(This,Owner,etchosts,param1,param2,ppAsynDnsResolver) )
#define IAsynNetwork_CreateAsynRawSocket(This,lType,ppAsynRawSocket) \
( (This)->lpVtbl -> CreateAsynRawSocket(This,lType,ppAsynRawSocket) )
......@@ -2296,11 +2304,11 @@ EXTERN_C const IID IID_IAsynNetwork;
#define IAsynNetwork_CreateAsynTcpSocketListener(This,unused,ppAsynTcpSocketListener) \
( (This)->lpVtbl -> CreateAsynTcpSocketListener(This,unused,ppAsynTcpSocketListener) )
#define IAsynNetwork_CreateAsynPtlSocket(This,Owner,param1,param2,ppAsynRawSocket) \
( (This)->lpVtbl -> CreateAsynPtlSocket(This,Owner,param1,param2,ppAsynRawSocket) )
#define IAsynNetwork_CreateAsynPtlSocket(This,Owner,socket,param1,param2,ppAsynRawSocket) \
( (This)->lpVtbl -> CreateAsynPtlSocket(This,Owner,socket,param1,param2,ppAsynRawSocket) )
#define IAsynNetwork_CreateAppService(This,Owner,param1,param2,events,ppAppService) \
( (This)->lpVtbl -> CreateAppService(This,Owner,param1,param2,events,ppAppService) )
#define IAsynNetwork_CreateAppService(This,Owner,object,param1,param2,ppAppService) \
( (This)->lpVtbl -> CreateAppService(This,Owner,object,param1,param2,ppAppService) )
#define IAsynNetwork_EnumLocalAddress(This,iaf,output) \
( (This)->lpVtbl -> EnumLocalAddress(This,iaf,output) )
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:16 2023
/* at Mon Aug 07 11:29:49 2023
*/
/* Compiler settings for IAsynNetwork.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:19 2023
/* at Mon Aug 07 11:29:52 2023
*/
/* Compiler settings for IConsole.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......@@ -119,7 +119,7 @@ EXTERN_C const IID IID_IConsole;
HRESULT ( STDMETHODCALLTYPE *Attach )(
IConsole * This,
/* [in] */ IUnknown *observer,
/* [in] */ STRING *subject);
/* [in] */ uint64_t subject);
HRESULT ( STDMETHODCALLTYPE *Detach )(
IConsole * This,
......@@ -131,7 +131,7 @@ EXTERN_C const IID IID_IConsole;
/* [in] */ uint32_t message,
/* [in] */ uint64_t lparam1,
/* [in] */ uint64_t lparam2,
/* [out][in] */ IUnknown **object);
/* [in] */ IUnknown *object);
HRESULT ( STDMETHODCALLTYPE *AllocWindow )(
IConsole * This,
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:19 2023
/* at Mon Aug 07 11:29:52 2023
*/
/* Compiler settings for IConsole.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:22 2023
/* at Mon Aug 07 11:29:53 2023
*/
/* Compiler settings for IDtp.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......@@ -86,9 +86,9 @@ EXTERN_C const IID IID_IDtpService;
public:
virtual HRESULT STDMETHODCALLTYPE CreateAsynDtpSocketLayer(
/* [in] */ IUnknown *pOwner,
/* [in] */ IUnknown **param1,
/* [in] */ STRING param2,
/* [in] */ uint32_t position,
/* [in] */ IUnknown *param1,
/* [in] */ STRING param2,
/* [out] */ IUnknown **ppObject) = 0;
};
......@@ -119,9 +119,9 @@ EXTERN_C const IID IID_IDtpService;
HRESULT ( STDMETHODCALLTYPE *CreateAsynDtpSocketLayer )(
IDtpService * This,
/* [in] */ IUnknown *pOwner,
/* [in] */ IUnknown **param1,
/* [in] */ STRING param2,
/* [in] */ uint32_t position,
/* [in] */ IUnknown *param1,
/* [in] */ STRING param2,
/* [out] */ IUnknown **ppObject);
END_INTERFACE
......@@ -151,8 +151,8 @@ EXTERN_C const IID IID_IDtpService;
( (This)->lpVtbl -> Control(This,action) )
#define IDtpService_CreateAsynDtpSocketLayer(This,pOwner,param1,param2,position,ppObject) \
( (This)->lpVtbl -> CreateAsynDtpSocketLayer(This,pOwner,param1,param2,position,ppObject) )
#define IDtpService_CreateAsynDtpSocketLayer(This,pOwner,position,param1,param2,ppObject) \
( (This)->lpVtbl -> CreateAsynDtpSocketLayer(This,pOwner,position,param1,param2,ppObject) )
#endif /* COBJMACROS */
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:22 2023
/* at Mon Aug 07 11:29:53 2023
*/
/* Compiler settings for IDtp.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:18 2023
/* at Mon Aug 07 11:29:51 2023
*/
/* Compiler settings for IExceptionTrapper.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:18 2023
/* at Mon Aug 07 11:29:51 2023
*/
/* Compiler settings for IExceptionTrapper.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:25 2023
/* at Mon Aug 07 11:29:54 2023
*/
/* Compiler settings for INet.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......@@ -280,14 +280,14 @@ EXTERN_C const IID IID_INet;
HRESULT ( STDMETHODCALLTYPE *Get )(
INet * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
INet * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *IsOpened )(
......@@ -393,11 +393,11 @@ EXTERN_C const IID IID_INet;
( (This)->lpVtbl -> Release(This) )
#define INet_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define INet_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define INet_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define INet_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define INet_IsOpened(This,pDeviceName) \
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:25 2023
/* at Mon Aug 07 11:29:54 2023
*/
/* Compiler settings for INet.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:30 2023
/* at Mon Aug 07 11:29:58 2023
*/
/* Compiler settings for IProxy.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......@@ -114,14 +114,14 @@ EXTERN_C const IID IID_IAsynProxySocket;
HRESULT ( STDMETHODCALLTYPE *Get )(
IAsynProxySocket * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
IAsynProxySocket * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *IsOpened )(
......@@ -227,11 +227,11 @@ EXTERN_C const IID IID_IAsynProxySocket;
( (This)->lpVtbl -> Release(This) )
#define IAsynProxySocket_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define IAsynProxySocket_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define IAsynProxySocket_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define IAsynProxySocket_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define IAsynProxySocket_IsOpened(This,pDeviceName) \
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:30 2023
/* at Mon Aug 07 11:29:58 2023
*/
/* Compiler settings for IProxy.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:26 2023
/* at Mon Aug 07 11:29:55 2023
*/
/* Compiler settings for ISsl.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......@@ -117,14 +117,14 @@ EXTERN_C const IID IID_ISsl;
HRESULT ( STDMETHODCALLTYPE *Get )(
ISsl * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppObject);
HRESULT ( STDMETHODCALLTYPE *Set )(
ISsl * This,
/* [in] */ uint32_t method,
/* [in] */ uint32_t lparam,
/* [in] */ uint32_t lparam2,
/* [in] */ IUnknown *pObject);
HRESULT ( STDMETHODCALLTYPE *IsOpened )(
......@@ -234,11 +234,11 @@ EXTERN_C const IID IID_ISsl;
( (This)->lpVtbl -> Release(This) )
#define ISsl_Get(This,method,lparam,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam,riid,ppObject) )
#define ISsl_Get(This,method,lparam2,riid,ppObject) \
( (This)->lpVtbl -> Get(This,method,lparam2,riid,ppObject) )
#define ISsl_Set(This,method,lparam,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam,pObject) )
#define ISsl_Set(This,method,lparam2,pObject) \
( (This)->lpVtbl -> Set(This,method,lparam2,pObject) )
#define ISsl_IsOpened(This,pDeviceName) \
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:26 2023
/* at Mon Aug 07 11:29:55 2023
*/
/* Compiler settings for ISsl.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:08 2023
/* at Mon Aug 07 11:29:43 2023
*/
/* Compiler settings for ITypedef.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......@@ -93,7 +93,6 @@ extern "C"{
/* [local] */
#pragma pack(push, 1)
typedef void *handle;
typedef struct tagRANGE
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:08 2023
/* at Mon Aug 07 11:29:43 2023
*/
/* Compiler settings for ITypedef.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:37 2023
/* at Mon Aug 07 11:30:03 2023
*/
/* Compiler settings for IVmHost.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
......@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 8.00.0603 */
/* at Sat Mar 04 07:47:37 2023
/* at Mon Aug 07 11:30:03 2023
*/
/* Compiler settings for IVmHost.idl:
Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603
......
#ifndef __AMF_H__
#define __AMF_H__
/*
* Copyright (C) 2005-2008 Team XBMC
* http://www.xbmc.org
* Copyright (C) 2008-2009 Andrej Stepanchuk
* Copyright (C) 2009-2010 Howard Chu
*
* This file is part of librtmp.
*
* librtmp is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1,
* or (at your option) any later version.
*
* librtmp is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with librtmp see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/lgpl.html
*/
#include <stdint.h>
#ifndef TRUE
#define TRUE 1
#define FALSE 0
#endif
#ifdef __cplusplus
extern "C"
{
#endif
typedef enum
{ AMF_NUMBER = 0, AMF_BOOLEAN, AMF_STRING, AMF_OBJECT,
AMF_MOVIECLIP, /* reserved, not used */
AMF_NULL, AMF_UNDEFINED, AMF_REFERENCE, AMF_ECMA_ARRAY, AMF_OBJECT_END,
AMF_STRICT_ARRAY, AMF_DATE, AMF_LONG_STRING, AMF_UNSUPPORTED,
AMF_RECORDSET, /* reserved, not used */
AMF_XML_DOC, AMF_TYPED_OBJECT,
AMF_AVMPLUS, /* switch to AMF3 */
AMF_INVALID = 0xff
} AMFDataType;
typedef enum
{ AMF3_UNDEFINED = 0, AMF3_NULL, AMF3_FALSE, AMF3_TRUE,
AMF3_INTEGER, AMF3_DOUBLE, AMF3_STRING, AMF3_XML_DOC, AMF3_DATE,
AMF3_ARRAY, AMF3_OBJECT, AMF3_XML, AMF3_BYTE_ARRAY
} AMF3DataType;
typedef struct AVal
{
char *av_val;
int av_len;
} AVal;
#define AVC(str) {str, sizeof(str)-1}
#define AVMATCH(a1,a2) ((a1)->av_len == (a2)->av_len && !memcmp((a1)->av_val,(a2)->av_val,(a1)->av_len))
struct AMFObjectProperty;
typedef struct AMFObject
{
int o_num;
struct AMFObjectProperty *o_props;
} AMFObject;
typedef struct AMFObjectProperty
{
AVal p_name;
AMFDataType p_type;
union
{
double p_number;
AVal p_aval;
AMFObject p_object;
} p_vu;
int16_t p_UTCoffset;
} AMFObjectProperty;
char *AMF_EncodeString(char *output, char *outend, const AVal *str);
char *AMF_EncodeNumber(char *output, char *outend, double dVal);
char *AMF_EncodeInt16(char *output, char *outend, unsigned short nVal);
char *AMF_EncodeInt24(char *output, char *outend, unsigned int nVal);
char *AMF_EncodeInt32(char *output, char *outend, unsigned int nVal);
char *AMF_EncodeBoolean(char *output, char *outend, int bVal);
/* Shortcuts for AMFProp_Encode */
char *AMF_EncodeNamedString(char *output, char *outend, const AVal *name, const AVal *value);
char *AMF_EncodeNamedNumber(char *output, char *outend, const AVal *name, double dVal);
char *AMF_EncodeNamedBoolean(char *output, char *outend, const AVal *name, int bVal);
unsigned short AMF_DecodeInt16(const char *data);
unsigned int AMF_DecodeInt24(const char *data);
unsigned int AMF_DecodeInt32(const char *data);
void AMF_DecodeString(const char *data, AVal *str);
void AMF_DecodeLongString(const char *data, AVal *str);
int AMF_DecodeBoolean(const char *data);
double AMF_DecodeNumber(const char *data);
char *AMF_Encode(AMFObject *obj, char *pBuffer, char *pBufEnd);
char *AMF_EncodeEcmaArray(AMFObject *obj, char *pBuffer, char *pBufEnd);
char *AMF_EncodeArray(AMFObject *obj, char *pBuffer, char *pBufEnd);
int AMF_Decode(AMFObject *obj, const char *pBuffer, int nSize, int bDecodeName);
int AMF_DecodeArray(AMFObject *obj, const char *pBuffer, int nSize, int nArrayLen, int bDecodeName);
int AMF3_Decode(AMFObject *obj, const char *pBuffer, int nSize, int bDecodeName);
void AMF_Reset(AMFObject *obj);
AMFObjectProperty *AMF_GetProp(AMFObject *obj, const AVal *name, int nIndex);
void AMF_AddProp(AMFObject *obj, const AMFObjectProperty *prop);
int AMF_CountProp(AMFObject *obj);
AMFDataType AMFProp_GetType(AMFObjectProperty *prop);
void AMFProp_SetNumber(AMFObjectProperty *prop, double dval);
void AMFProp_SetBoolean(AMFObjectProperty *prop, int bflag);
void AMFProp_SetString(AMFObjectProperty *prop, AVal *str);
void AMFProp_SetObject(AMFObjectProperty *prop, AMFObject *obj);
void AMFProp_GetName(AMFObjectProperty *prop, AVal *name);
void AMFProp_SetName(AMFObjectProperty *prop, AVal *name);
double AMFProp_GetNumber(AMFObjectProperty *prop);
int AMFProp_GetBoolean(AMFObjectProperty *prop);
void AMFProp_GetString(AMFObjectProperty *prop, AVal *str);
void AMFProp_GetObject(AMFObjectProperty *prop, AMFObject *obj);
int AMFProp_IsValid(AMFObjectProperty *prop);
char *AMFProp_Encode(AMFObjectProperty *prop, char *pBuffer, char *pBufEnd);
int AMF3Prop_Decode(AMFObjectProperty *prop, const char *pBuffer, int nSize, int bDecodeName);
int AMFProp_Decode(AMFObjectProperty *prop, const char *pBuffer, int nSize, int bDecodeName);
void AMFProp_Reset(AMFObjectProperty * prop);
typedef struct AMF3ClassDef
{
AVal cd_name;
char cd_externalizable;
char cd_dynamic;
int cd_num;
AVal *cd_props;
} AMF3ClassDef;
void AMF3CD_AddProp(AMF3ClassDef *cd, AVal *prop);
AVal *AMF3CD_GetProp(AMF3ClassDef *cd, int idx);
#ifdef __cplusplus
}
#endif
#endif/* __AMF_H__ */
......@@ -35,8 +35,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#pragma once
#endif // _MSC_VER > 1000
#include "AsynNetwork_internal.h"
#include "asm/IDtp.h"
#include "../AsynNetwork_internal.h"
#include "../asm/IDtp.h"
NAMESPACE_BEGIN(asynsdk)
/////////////////////////////////////////////////////////////////////////////////
......
#if !defined(AFX_RAS_H__88966194_6F5D_4303_8670_7EAE695A32B3__INCLUDED_)
#define AFX_RAS_H__88966194_6F5D_4303_8670_7EAE695A32B3__INCLUDED_
/*****************************************************************************
Copyright (c) netsecsp 2012-2032, All rights reserved.
Author: Shengqian Yang, netsecsp@hotmail.com, China, last updated 05/01/2022
http://asynframe.sf.net
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above
copyright notice, this list of conditions and the
following disclaimer.
* Redistributions in binary form must reproduce the
above copyright notice, this list of conditions
and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*****************************************************************************/
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "../AsynNetwork_internal.h"
NAMESPACE_BEGIN(asynsdk)
/////////////////////////////////////////////////////////////////////////////////
#define IN_Ras "com.svc.ras"
/////////////////////////////////////////////////////////////////////////////////
#define IN_Ras_DT_Modem "modem"
#define IN_Ras_DT_Isdn "isdn"
#define IN_Ras_DT_X25 "x25"
#define IN_Ras_DT_Vpn "vpn"
#define IN_Ras_DT_Pad "pad"
#define IN_Ras_DT_Generic "GENERIC"
#define IN_Ras_DT_Serial "SERIAL"
#define IN_Ras_DT_FrameRelay "FRAMERELAY"
#define IN_Ras_DT_Atm "ATM"
#define IN_Ras_DT_Sonet "SONET"
#define IN_Ras_DT_SW56 "SW56"
#define IN_Ras_DT_Irda "IRDA"
#define IN_Ras_DT_Parallel "PARALLEL"
#define IN_Ras_DT_PPPoE "PPPoE"
NAMESPACE_END(asynsdk)
#endif // !defined(AFX_RAS_H__88966194_6F5D_4303_8670_7EAE695A32B3__INCLUDED_)
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。