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??

  • 相关阅读:
    买车注意事项
    关节炎的成因
    改变seekbar的游标图片大小
    十大安卓应用商店推广渠道排行榜
    无线 WIFI 的13个信道频率范围
    了解RFC协议号
    图形图像专业术语
    Phpcms之L()函数
    PHPCMS V9 加密规则
    Sublime 快捷键
  • 原文地址:https://www.cnblogs.com/cutepig/p/3113725.html
Copyright © 2011-2022 走看看