zoukankan      html  css  js  c++  java
  • CoCreateInstance调用COM接口伪流程

    在编写组件程序时,经常会使用CoCreateInstance直接取COM组件的接口,非常方便,那CoCreateInstance到底干了些什么事呢?1、CoCreateInstance取COM组件的接口的基本流程


    //参数:rclsid = 组件CLSID
    //参数:riid = 接口ID
    WINOLEAPI   CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, 
                                 DWORD dwClsContext, REFIID riid, LPVOID FAR* ppICOMInterface)
    {
            //根据组件的CLSID从注册表中取Dll的地址,并加载
            char        pszCOMDllPath;
            SHGetValue(HKEY_CLASSES_ROOT, "CLSID+rclsidInprocServer32", "默认", pszCOMDllPath);
            LoadLibrary(pszCOMDllPath);
    
            //调用DllGetClassObject,创建IID_IClassFactory总接口
            IClassFactory* pIFactory;
            DllGetClassObject(rclsid, IID_IClassFactory, &pIFactory);
            {
                 IClassFactory* pITotalFactory = new IClassFactory;
                 pITotalFactory->QueryInterface(IID_IClassFactory, &pIFactory);
            }
            
            //调用CreateInstance创建COM总接口对象
            pIFactory->CreateInstance(pUnkOuter, riid, ppICOMInterface);
            {
                 ICOMInterface* pITotalCOMInterface = new ITotalCOMInterface;
            
                 //根据接口IID取指定接口对象
                pITotalCOMInterface->QueryInterface(riid, ppICOMInterface);
        }
    }



    本文为博主原创文章,如需转载请说明转至http://www.cnblogs.com/organic/
  • 相关阅读:
    数据结构之伸展树
    数据结构之后缀数组
    数据结构之Treap
    数据结构之AVL树
    数据结构之位图
    数据结构之红黑树
    数据结构之线段树
    数据结构之堆Heap
    关于安装软件的经验教训
    TCP建立连接通过三次握手,释放连接通过四次挥手
  • 原文地址:https://www.cnblogs.com/organic/p/5005657.html
Copyright © 2011-2022 走看看