├── .gitattributes
├── .gitignore
├── DllExport.bat
├── DllExport_Configure.bat
├── LICENSE
├── Lib
└── Newtonsoft.Json.dll
├── Native.Core
├── CQMain.cs
├── Domain
│ └── AppData.cs
├── Export
│ ├── CQEventExport.cs
│ ├── CQExport.tt
│ ├── CQMenuExport.cs
│ └── CQStatusExport.cs
├── FodyWeavers.xml
├── Native.Core.csproj
├── Properties
│ └── AssemblyInfo.cs
├── app.json
└── packages.config
├── Native.Sdk
├── Cqp
│ ├── CQApi.cs
│ ├── CQLog.cs
│ ├── Core
│ │ ├── CQP.cs
│ │ └── Kernel32.cs
│ ├── Enum
│ │ ├── CQAudioFormat.cs
│ │ ├── CQDiscussMessageType.cs
│ │ ├── CQFace.cs
│ │ ├── CQFloatWindowColors.cs
│ │ ├── CQFriendAddRequestType.cs
│ │ ├── CQFriendAddType.cs
│ │ ├── CQFunction.cs
│ │ ├── CQGroupAddRequestType.cs
│ │ ├── CQGroupBanSpeakType.cs
│ │ ├── CQGroupFileUploadType.cs
│ │ ├── CQGroupManageChangeType.cs
│ │ ├── CQGroupMemberDecreaseType.cs
│ │ ├── CQGroupMemberIncreaseType.cs
│ │ ├── CQGroupMessageType.cs
│ │ ├── CQLogLevel.cs
│ │ ├── CQMessageEventType.cs
│ │ ├── CQMessageHandler.cs
│ │ ├── CQMusicStyle.cs
│ │ ├── CQMusicType.cs
│ │ ├── CQPrviateMessageType.cs
│ │ ├── CQResponseType.cs
│ │ ├── QQGroupMemberType.cs
│ │ └── QQSex.cs
│ ├── EventArgs
│ │ ├── CQAppDisableEventArgs.cs
│ │ ├── CQAppEnableEventArgs.cs
│ │ ├── CQDiscussMessageEventArgs.cs
│ │ ├── CQEventArgs.cs
│ │ ├── CQEventEventArgs.cs
│ │ ├── CQExitEventArgs.cs
│ │ ├── CQFriendAddEventArgs.cs
│ │ ├── CQFriendAddRequestEventArgs.cs
│ │ ├── CQGroupAddRequestEventArgs.cs
│ │ ├── CQGroupBanSpeakEventArgs.cs
│ │ ├── CQGroupManageChangeEventArgs.cs
│ │ ├── CQGroupMemberDecreaseEventArgs.cs
│ │ ├── CQGroupMemberIncreaseEventArgs.cs
│ │ ├── CQGroupMessageEventArgs.cs
│ │ ├── CQGroupUploadEventArgs.cs
│ │ ├── CQMenuCallEventArgs.cs
│ │ ├── CQMenuEventArgs.cs
│ │ ├── CQPrivateMessageEventArgs.cs
│ │ ├── CQStartupEventArgs.cs
│ │ ├── CQStatusEventArgs.cs
│ │ └── CQStatusUpdateEventArgs.cs
│ ├── Expand
│ │ ├── BinaryReaderExpand.cs
│ │ ├── BinaryWriterExpand.cs
│ │ └── SystemExpand.cs
│ ├── Interface
│ │ ├── IAppDisable.cs
│ │ ├── IAppEnable.cs
│ │ ├── ICQExit.cs
│ │ ├── ICQStartup.cs
│ │ ├── IDiscussMessage.cs
│ │ ├── IFriendAdd.cs
│ │ ├── IFriendAddRequest.cs
│ │ ├── IGroupAddRequest.cs
│ │ ├── IGroupBanSpeak.cs
│ │ ├── IGroupManageChange.cs
│ │ ├── IGroupMemberDecrease.cs
│ │ ├── IGroupMemberIncrease.cs
│ │ ├── IGroupMessage.cs
│ │ ├── IGroupUpload.cs
│ │ ├── IMenuCall.cs
│ │ ├── IPrivateMessage.cs
│ │ ├── IStatusUpdate.cs
│ │ └── IToSendString.cs
│ └── Model
│ │ ├── AppInfo.cs
│ │ ├── BasisModel.cs
│ │ ├── BasisStreamModel.cs
│ │ ├── CQCode.cs
│ │ ├── CQFloatWindow.cs
│ │ ├── Discuss.cs
│ │ ├── FriendInfo.cs
│ │ ├── FriendInfoCollection.cs
│ │ ├── Group.cs
│ │ ├── GroupFileInfo.cs
│ │ ├── GroupInfo.cs
│ │ ├── GroupInfoCollection.cs
│ │ ├── GroupMemberAnonymousInfo.cs
│ │ ├── GroupMemberInfo.cs
│ │ ├── GroupMemberInfoCollection.cs
│ │ ├── QQ.cs
│ │ ├── QQMessage.cs
│ │ ├── QQRequest.cs
│ │ └── StrangerInfo.cs
├── Native.Sdk.csproj
└── Properties
│ └── AssemblyInfo.cs
├── Native.Tool
├── Http
│ ├── HttpTool.cs
│ └── HttpWebClient.cs
├── IniConfig
│ ├── Attribute
│ │ ├── IniConfigKeyAttribute.cs
│ │ ├── IniConfigSectionAttribute.cs
│ │ ├── IniKeyAttribute.cs
│ │ ├── IniNonSerializeAttribute.cs
│ │ ├── IniSectionAttribute.cs
│ │ └── IniSerializeAttribute.cs
│ ├── Exception
│ │ ├── IniConfigException.cs
│ │ ├── PropertyNotFoundException.cs
│ │ └── SectionNotFoundException.cs
│ ├── IniConfig.cs
│ ├── IniConvert.cs
│ ├── Linq
│ │ ├── IContainer.cs
│ │ ├── IObject.cs
│ │ ├── ISection.cs
│ │ ├── IValue.cs
│ │ ├── IValueType.cs
│ │ ├── IniObject.cs
│ │ ├── IniSection.cs
│ │ └── IniValue.cs
│ └── Utilities
│ │ ├── ConvertUtils.cs
│ │ ├── MathUtils.cs
│ │ ├── MiscellaneousUtils.cs
│ │ └── ReflectionUtils.cs
├── Native.Tool.csproj
├── Properties
│ └── AssemblyInfo.cs
└── SQLite
│ ├── AssemblySourceIdAttribute.cs
│ ├── AssemblySourceTimeStampAttribute.cs
│ ├── Configurations
│ └── System.Data.SQLite.dll.config
│ ├── Generated
│ └── SR.resources
│ ├── ISQLiteNativeModule.cs
│ ├── LINQ
│ ├── SQLiteConnection_Linq.cs
│ └── SQLiteFactory_Linq.cs
│ ├── Resources
│ ├── DataTypes.xml
│ ├── MetaDataCollections.xml
│ ├── SQLiteCommand.bmp
│ ├── SQLiteConnection.bmp
│ ├── SQLiteDataAdapter.bmp
│ ├── SR.Designer.cs
│ └── SR.resx
│ ├── SQLite3.cs
│ ├── SQLite3_UTF16.cs
│ ├── SQLiteBackup.cs
│ ├── SQLiteBase.cs
│ ├── SQLiteBlob.cs
│ ├── SQLiteCommand.cs
│ ├── SQLiteCommandBuilder.cs
│ ├── SQLiteConnection.cs
│ ├── SQLiteConnectionPool.cs
│ ├── SQLiteConnectionStringBuilder.cs
│ ├── SQLiteConvert.cs
│ ├── SQLiteDataAdapter.cs
│ ├── SQLiteDataReader.cs
│ ├── SQLiteDefineConstants.cs
│ ├── SQLiteEnlistment.cs
│ ├── SQLiteException.cs
│ ├── SQLiteFactory.cs
│ ├── SQLiteFunction.cs
│ ├── SQLiteFunctionAttribute.cs
│ ├── SQLiteKeyReader.cs
│ ├── SQLiteLog.cs
│ ├── SQLiteMetaDataCollectionNames.cs
│ ├── SQLiteModule.cs
│ ├── SQLiteModuleCommon.cs
│ ├── SQLiteModuleEnumerable.cs
│ ├── SQLiteModuleNoop.cs
│ ├── SQLiteParameter.cs
│ ├── SQLiteParameterCollection.cs
│ ├── SQLitePatchLevel.cs
│ ├── SQLiteSession.cs
│ ├── SQLiteStatement.cs
│ ├── SQLiteTransaction.cs
│ ├── SQLiteTransaction2.cs
│ ├── SQLiteTransactionBase.cs
│ ├── Targets
│ ├── System.Data.SQLite.Files.targets
│ ├── System.Data.SQLite.Properties.targets
│ └── System.Data.SQLite.References.targets
│ └── UnsafeNativeMethods.cs
├── Native.sln
├── README.md
├── UPDATE.md
└── packages
├── Costura.Fody.1.6.2
├── .signature.p7s
├── Costura.Fody.1.6.2.nupkg
├── Costura.Fody.dll
├── Costura.Tasks.dll
├── build
│ ├── dotnet
│ │ └── Costura.Fody.targets
│ └── portable-net+sl+win+wpa+wp
│ │ └── Costura.Fody.targets
├── lib
│ ├── dotnet
│ │ └── Costura.dll
│ └── portable-net+sl+win+wpa+wp
│ │ └── Costura.dll
└── tools
│ ├── install.ps1
│ └── uninstall.ps1
├── DllExport.1.6.1
├── 3rd-party.txt
├── DllExport.1.6.1.nupkg
├── DllExport.bat
├── License.txt
├── Readme.md
├── build
│ └── net20
│ │ └── DllExport.targets
├── build_info.txt
├── changelog.txt
├── gcache
│ └── metalib
│ │ └── System.Runtime.InteropServices
│ │ ├── DllExport.dll
│ │ └── DllExport.dll.ddNSi
├── hMSBuild.bat
├── lib
│ └── net20
│ │ └── _._
└── tools
│ ├── Conari.dll
│ ├── Conari.pdb
│ ├── Conari.xml
│ ├── Microsoft.Build.Framework.dll
│ ├── Microsoft.Build.Utilities.v4.0.dll
│ ├── Microsoft.Build.dll
│ ├── Microsoft.Management.Infrastructure.dll
│ ├── Mono.Cecil.dll
│ ├── MvsSln.dll
│ ├── MvsSln.pdb
│ ├── MvsSln.xml
│ ├── NSBin.dll
│ ├── NSBin.pdb
│ ├── PeViewer.exe
│ ├── PeViewer.pdb
│ ├── RGiesecke.DllExport.MSBuild.dll
│ ├── RGiesecke.DllExport.MSBuild.pdb
│ ├── RGiesecke.DllExport.dll
│ ├── RGiesecke.DllExport.pdb
│ ├── System.Management.Automation.dll
│ ├── build.targets
│ ├── coreclr
│ ├── LICENSE.TXT
│ ├── PATENTS.TXT
│ ├── README.md
│ ├── _Version.txt
│ ├── changelog.txt
│ ├── coreclr.dll
│ ├── ilasm.exe
│ ├── ildasm.exe
│ ├── ildasmrc.dll
│ ├── mscordaccore.dll
│ └── mscordbi.dll
│ ├── gnt.bat
│ ├── hMSBuild.bat
│ ├── net.r_eg.DllExport.Configurator.dll
│ ├── net.r_eg.DllExport.Configurator.pdb
│ ├── net.r_eg.DllExport.Wizard.dll
│ ├── net.r_eg.DllExport.Wizard.pdb
│ ├── net.r_eg.DllExport.Wizard.targets
│ ├── net.r_eg.DllExport.targets
│ └── raw
│ └── lib
│ └── net20
│ └── DllExport.dll
├── Fody.2.2.1.0
├── .signature.p7s
├── Content
│ └── FodyWeavers.xml
├── Fody.2.2.1.0.nupkg
├── Fody.dll
├── FodyCommon.dll
├── FodyIsolated.dll
├── Mono.Cecil.Mdb.dll
├── Mono.Cecil.Pdb.dll
├── Mono.Cecil.Rocks.dll
├── Mono.Cecil.dll
├── Tools
│ └── install.ps1
└── build
│ ├── net452
│ └── Fody.targets
│ ├── netstandard1.2
│ └── Fody.targets
│ └── portable-net+sl+win+wpa+wp
│ └── Fody.targets
└── Unity.5.8.6
├── .signature.p7s
├── Unity.5.8.6.nupkg
└── lib
├── net40
├── CommonServiceLocator.dll
├── Unity.Abstractions.dll
├── Unity.Container.dll
├── Unity.Interception.dll
└── Unity.ServiceLocation.dll
├── net45
├── CommonServiceLocator.dll
├── Unity.Abstractions.dll
├── Unity.Configuration.dll
├── Unity.Container.dll
├── Unity.Interception.Configuration.dll
├── Unity.Interception.dll
├── Unity.RegistrationByConvention.dll
└── Unity.ServiceLocation.dll
├── net46
├── CommonServiceLocator.dll
├── Unity.Abstractions.dll
├── Unity.Configuration.dll
├── Unity.Container.dll
├── Unity.Interception.Configuration.dll
├── Unity.Interception.dll
├── Unity.RegistrationByConvention.dll
└── Unity.ServiceLocation.dll
├── net47
├── CommonServiceLocator.dll
├── Unity.Abstractions.dll
├── Unity.Configuration.dll
├── Unity.Container.dll
├── Unity.Interception.Configuration.dll
├── Unity.Interception.dll
├── Unity.RegistrationByConvention.dll
└── Unity.ServiceLocation.dll
├── netcoreapp1.0
├── CommonServiceLocator.deps.json
├── CommonServiceLocator.dll
├── Unity.Abstractions.deps.json
├── Unity.Abstractions.dll
├── Unity.Container.deps.json
├── Unity.Container.dll
├── Unity.ServiceLocation.deps.json
└── Unity.ServiceLocation.dll
├── netcoreapp2.0
├── Unity.Abstractions.dll
├── Unity.Container.deps.json
└── Unity.Container.dll
├── netstandard1.0
├── CommonServiceLocator.deps.json
├── CommonServiceLocator.dll
├── Unity.Abstractions.deps.json
├── Unity.Abstractions.dll
├── Unity.Container.deps.json
├── Unity.Container.dll
├── Unity.ServiceLocation.deps.json
└── Unity.ServiceLocation.dll
└── netstandard2.0
├── CommonServiceLocator.deps.json
├── CommonServiceLocator.dll
├── Unity.Abstractions.deps.json
├── Unity.Abstractions.dll
├── Unity.Container.deps.json
├── Unity.Container.dll
├── Unity.ServiceLocation.deps.json
└── Unity.ServiceLocation.dll
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/DllExport_Configure.bat:
--------------------------------------------------------------------------------
1 | DllExport -action Configure %*
--------------------------------------------------------------------------------
/Lib/Newtonsoft.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Jie2GG/Native.Framework/c458a4674dbd1a405f5facd26bd34daa8a652478/Lib/Newtonsoft.Json.dll
--------------------------------------------------------------------------------
/Native.Core/CQMain.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Unity;
7 |
8 | namespace Native.Core
9 | {
10 | ///
11 | /// 酷Q应用主入口类
12 | ///
13 | public class CQMain
14 | {
15 | ///
16 | /// 在应用被加载时将调用此方法进行事件注册, 请在此方法里向 容器中注册需要使用的事件
17 | ///
18 | /// 用于注册的 IOC 容器
19 | public static void Register (IUnityContainer unityContainer)
20 | {
21 |
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Native.Core/Domain/AppData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Native.Sdk.Cqp;
7 | using Unity;
8 |
9 | namespace Native.Core.Domain
10 | {
11 | public static class AppData
12 | {
13 | ///
14 | /// 获取当前 App 使用的 酷Q Api 接口实例
15 | ///
16 | public static CQApi CQApi { get; private set; }
17 |
18 | ///
19 | /// 获取当前 App 使用的 酷Q Log 接口实例
20 | ///
21 | public static CQLog CQLog { get; private set; }
22 |
23 | ///
24 | /// 获取当前 App 使用的依赖注入容器实例
25 | ///
26 | public static IUnityContainer UnityContainer { get; private set; }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Native.Core/Export/CQMenuExport.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * 此文件由T4引擎自动生成, 请勿修改此文件中的代码!
3 | */
4 | using System;
5 | using System.Reflection;
6 | using System.Runtime.InteropServices;
7 | using Native.Core.Domain;
8 | using Native.Sdk.Cqp;
9 | using Native.Sdk.Cqp.EventArgs;
10 | using Native.Sdk.Cqp.Interface;
11 | using Unity;
12 |
13 | namespace Native.App.Export
14 | {
15 | ///
16 | /// 表示酷Q菜单导出的类
17 | ///
18 | public class CQMenuExport
19 | {
20 | #region --构造函数--
21 | ///
22 | /// 由托管环境初始化的 的新实例
23 | ///
24 | static CQMenuExport ()
25 | {
26 |
27 | // 调用方法进行实例化
28 | ResolveBackcall ();
29 | }
30 | #endregion
31 |
32 | #region --私有方法--
33 | ///
34 | /// 读取容器中的注册项, 进行事件分发
35 | ///
36 | private static void ResolveBackcall ()
37 | {
38 | /*
39 | * Name: 设置A
40 | * Function: _menuA
41 | */
42 | if (AppData.UnityContainer.IsRegistered ("设置A"))
43 | {
44 | Menu_menuAHandler += AppData.UnityContainer.Resolve ("设置A").MenuCall;
45 | }
46 |
47 | /*
48 | * Name: 设置B
49 | * Function: _menuB
50 | */
51 | if (AppData.UnityContainer.IsRegistered ("设置B"))
52 | {
53 | Menu_menuBHandler += AppData.UnityContainer.Resolve ("设置B").MenuCall;
54 | }
55 |
56 | }
57 | #endregion
58 |
59 | #region --导出方法--
60 | /*
61 | * Name: 设置A
62 | * Function: _menuA
63 | */
64 | public static event EventHandler Menu_menuAHandler;
65 | [DllExport (ExportName = "_menuA", CallingConvention = CallingConvention.StdCall)]
66 | public static int Menu_menuA ()
67 | {
68 | if (Menu_menuAHandler != null)
69 | {
70 | CQMenuCallEventArgs args = new CQMenuCallEventArgs (AppData.CQApi, AppData.CQLog, "设置A", "_menuA");
71 | Menu_menuAHandler (typeof (CQMenuExport), args);
72 | }
73 | return 0;
74 | }
75 |
76 | /*
77 | * Name: 设置B
78 | * Function: _menuB
79 | */
80 | public static event EventHandler Menu_menuBHandler;
81 | [DllExport (ExportName = "_menuB", CallingConvention = CallingConvention.StdCall)]
82 | public static int Menu_menuB ()
83 | {
84 | if (Menu_menuBHandler != null)
85 | {
86 | CQMenuCallEventArgs args = new CQMenuCallEventArgs (AppData.CQApi, AppData.CQLog, "设置B", "_menuB");
87 | Menu_menuBHandler (typeof (CQMenuExport), args);
88 | }
89 | return 0;
90 | }
91 |
92 | #endregion
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/Native.Core/Export/CQStatusExport.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * 此文件由T4引擎自动生成, 请勿修改此文件中的代码!
3 | */
4 | using System;
5 | using System.Reflection;
6 | using System.Runtime.InteropServices;
7 | using Native.Core.Domain;
8 | using Native.Sdk.Cqp;
9 | using Native.Sdk.Cqp.EventArgs;
10 | using Native.Sdk.Cqp.Interface;
11 | using Native.Sdk.Cqp.Model;
12 | using Unity;
13 |
14 | namespace Native.App.Export
15 | {
16 | ///
17 | /// 表示酷Q状态导出的类
18 | ///
19 | public class CQStatusExport
20 | {
21 | #region --构造函数--
22 | ///
23 | /// 由托管环境初始化的 的新实例
24 | ///
25 | static CQStatusExport ()
26 | {
27 | // 调用方法进行实例化
28 | ResolveBackcall ();
29 | }
30 | #endregion
31 |
32 | #region --私有方法--
33 | ///
34 | /// 读取容器中的注册项, 进行事件分发
35 | ///
36 | private static void ResolveBackcall ()
37 | {
38 | /*
39 | * Id: 1
40 | * Name: 运行时间
41 | * Title: UPTIME
42 | * Function: _statusUptime
43 | * Period: 1000
44 | */
45 | if (AppData.UnityContainer.IsRegistered ("运行时间"))
46 | {
47 | Status_statusUptimeHandler += AppData.UnityContainer.Resolve ("运行时间").StatusUpdate;
48 | }
49 |
50 | }
51 | #endregion
52 |
53 | #region --导出方法--
54 | /*
55 | * Id: 1
56 | * Name: 运行时间
57 | * Title: UPTIME
58 | * Function: _statusUptime
59 | * Period: 1000
60 | */
61 | public static event Func