Windows
文章平均质量分 77
Austin98xxx
这个作者很懒,什么都没留下…
展开
-
Windows 和 Linux 的IPC API对应表
Table 1. Process mappingWindowsLinuxClassificationCreateProcess()CreateProcessAsUser()fork()setuid()exec()MappableTerminateProcess()kill()Mappable转载 2014-06-09 16:09:35 · 927 阅读 · 0 评论 -
COM组件编程—自动化
1、接口分类调度接口(dispinterface) :IDispatch::Invoke的一个实现所能调用的函数集合,客户只能通过IDispatch::Invoke使用组件。COM(vbtl)接口(custome) :一个指针,指向一个函数指针数组,数组前三个元素是 QueryInterface,AddRef和Release。双重接口(dual) :客户既可以通过调度接口(IDispa原创 2015-02-11 17:41:18 · 1728 阅读 · 0 评论 -
COM组件编程—IUnknown的三个接口函数
对于COM组件,正确处理IUnknown的三个接口函数非常重要。对于QueryInterface,一个参考处理如下:HRESULT __stdcall CA::QueryInterface(const IID& iid, void** ppv){ if (iid == IID_IUnknown) { *ppv = static_cast(this) ; } else原创 2015-02-11 10:13:35 · 1396 阅读 · 0 评论 -
COM组件编程—接口定义语言IDL
通过IDL描述接口,再通过MIDL编译生成代理和残根DLL。IDL的一个示例:import "unknwn.idl" ; typedef struct { double x ; double y ; double z ;} Point3d ;interface IZ : IUnknown{ HRESULT FzStructIn([in] Point3d pt) ;原创 2015-02-11 10:45:14 · 2216 阅读 · 0 评论 -
COM组件编程—数据类型
1、智能指针CComPtrATL的CComPtr模板类提供了基本的智能指针功能。你可以把CComPtr类作为一个COM接口指针来使用,当类超出他的有效范围时,他将自动调用Release()CComPtr ptrMath;HRESULT hr;ht = CoCreateInstance(CLSID_Math, NULL, CLSCTX_LOCAL_SERV原创 2015-02-11 13:01:48 · 1267 阅读 · 0 评论 -
COM组件编程—理论知识
1、 COM组件是一个C++类,他从一系列接口派生而来,并实现了所有的接口。这些接口都是纯虚类。2、COM组件有三个最基本的接口类,分别是IUnknown、IClassFactory、IDispatch。 COM规范规定任何组件、任何接口都必须从IUnknown继承。 所以我们使用COM的一个简单流程如下:CoInitialize(NULL);IUnknown原创 2015-02-11 09:47:41 · 3980 阅读 · 0 评论