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/
  • 相关阅读:
    小程序开发学习
    guava 学习一 函数,集合操作
    《构建之法》第四章 两人合作 读后感
    模拟退火学习笔记
    Haywire
    [JSOI2004]平衡点
    CF1039D You Are Given a Tree
    CF797E Array Queries
    [SHOI2014]三叉神经树
    [国家集训队]Tree II
  • 原文地址:https://www.cnblogs.com/organic/p/5005657.html
Copyright © 2011-2022 走看看