zoukankan      html  css  js  c++  java
  • COM入门

    1. 定义CLSID_IExample和IID_IExample,分别作为实现类(coclass)和接口类的id
    2. 声明接口IExample,从IUnknown继承
    STDMETHOD  (QueryInterface)        (THIS_ REFIID, void **) PURE;
    STDMETHOD_ (ULONG, AddRef)        (THIS) PURE;
    STDMETHOD_ (ULONG, Release)        (THIS) PURE;
    STDMETHOD  (SetString)            (THIS_ char *) PURE;
    STDMETHOD  (GetString)            (THIS_ char *, DWORD) PURE;

    3. 实现接口IExample类MyRealIExample
    4. 实现接口IClassFactory
    HRESULT STDMETHODCALLTYPE QueryInterface( REFIID factoryGuid, void **ppv)
    ULONG STDMETHODCALLTYPE AddRef()
    ULONG STDMETHODCALLTYPE Release()
    HRESULT STDMETHODCALLTYPE CreateInstance(IUnknown *punkOuter, REFIID vTableGuid, void **objHandle)
    HRESULT STDMETHODCALLTYPE LockServer(BOOL flock)
    5. 实现函数
    HRESULT PASCAL DllGetClassObject(REFCLSID objGuid, REFIID factoryGuid, void **factoryHandle)
    HRESULT PASCAL DllCanUnloadNow(void)
    STDAPI DllRegisterServer() (可选)
    6. 导出函数
    DllCanUnloadNow        PRIVATE
    DllGetClassObject    PRIVATE
    DllRegisterServer    PRIVATE

    参考教程
    http://www.codeproject.com/Articles/13601/COM-in-plain-C#CLASS
    http://antonio.cz/static/com/5.html

    Q&A

    coclass??
    coclass (short for component object class) is contained in a DLL or EXE, and contains the code behind one or more interfaces. The coclass is said to implement those interfaces.

    GUID??
    globally unique identifier  GUIDs are COM's language-independent way of identifying things. Each interface and coclass has a GUID.

    UUID??
    (which stands for universally unique identifier) at times. UUIDs and GUIDs are, for all practical purposes, the same.

    class ID, or CLSID, is a GUID that names a coclass. An interface ID, or IID, is a GUID that names an interface.

    def file: PRIVATE?

    COM ThreadingModel?

    __declspec(novtable)??

    DECLSPEC_SELECTANY??

  • 相关阅读:
    五大主流浏览器 CSS3 和 HTML5 兼容性大比拼
    httpservice 公共类
    Eclipse自动生成注释
    天生一对"Maven2+Jetty" Maven2创建并管理WebApp,并使用Maven Jetty Plugin在Eclipse中调试
    jsp checkbox不错的应用
    我们需要改变
    Sortable Table 可排序表格JS收集
    Eclipse快捷键大全()
    Ajax简单应用
    css 固定table表头
  • 原文地址:https://www.cnblogs.com/cutepig/p/3113725.html
Copyright © 2011-2022 走看看